From patchwork Fri Jun 19 14:07:46 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vijay Anusuri X-Patchwork-Id: 90524 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 10332CD98F2 for ; Fri, 19 Jun 2026 14:08:05 +0000 (UTC) Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.43188.1781878082077579423 for ; Fri, 19 Jun 2026 07:08:02 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@mvista.com header.s=google header.b=iLyVYQU8; spf=pass (domain: mvista.com, ip: 209.85.214.179, mailfrom: vanusuri@mvista.com) Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2c69921bd15so10465105ad.1 for ; Fri, 19 Jun 2026 07:08:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mvista.com; s=google; t=1781878081; x=1782482881; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Z/p+FZtdgmhkMuTC054lnL+ogxcPAQJ50K9GeWIGmlk=; b=iLyVYQU8EpVIUoakFuW8Ghs/z+2z46qv4jpG9zh5NTRPkvcmfJrEyQjW+iyv0OAlaH AWzl/oY/XTeaQFvDFkgop9Q0L5F+Dgx3fBp0W37Jrnqy+dydMLOWFhUJ+JB/GxKM+tub kPDbe2Kihg14ji5qb/GcVw3LBzl2ajLio9/lk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781878081; x=1782482881; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Z/p+FZtdgmhkMuTC054lnL+ogxcPAQJ50K9GeWIGmlk=; b=K6mdGalSo/3MV7zSp1AmHlN1NoS8BZEzAWII8+Vr+lCFoz338u9kSHDb2iHMNznkWs Ehk6lvOxjFqLk2/F0WzbxGuLg7s7cRDXCa8djyNKFEWELd0cWg5kNQVoxx6UgK94y79U J4kU6U0asxMc+1OK1WsU+mDrj0zVywRk+mFINqNBzxLkPUJQayp/ffkFQeAvAp7ALsAv 5pCGjyNc9mUtUGZ5RcCa1bh/0DP57Ub8wAYr94bIfsbaQ5h5iKR7nczlNhNJFhmvuwOq bxJxYdrpZyXtDqLXZH7f6huJOzJRe2eTziO/SdMGsE8ZHXMQheHZJEhPYGtpdadQub4H a2SA== X-Gm-Message-State: AOJu0Yy/itGJXT8fNzuJrc+EVGDZWyAt2CaOClODWDgJasdMjA2uAJ1S YkX/MXO8TCrDPOD+OKcwXh42cKS2KkohdTlw3JYYtF6twuNF4Tlo9MO9vzshCLgDjAnQGUsXwuE VePDyfRk= X-Gm-Gg: AfdE7cmpEEoZhQtXcTzJaXR4VZ4Hz69jFYtRHEORdV1123PZiJgVcRiVf5A0QmjXuwL tWmxMQNJEspwZHJzKCUMMaFHknTy/1Y4M0/SNgvqqNo8mXuID5ffubLNcrTrQiKi+Spa08ocye1 qP/rN1j1gQHHb4gtdBbsg/lFBzMyekiBliBXB+5NfD75+v0zUouFvv4Pwozmhdnokz0qgpLYNhd tqqpHOyDYEb6IZlB4KfEnfgqnXV5DJSYuvcnrJYz1eGXodm6lb0hMRcTseZAp0/RS6mUQu+7rLJ CzQoeTREmf+87WiUmSBZrLVN2aRBnRXzCeJPGllblYWzDIA31fUOXA7Aah/OAak9h8GgszmaV6X /ozx2G/eoTrNue2w7Pe1igGg9sL9zEZyPldO+gAoRNa0SlgPsghC3rgCT4/9DTH616Gj5iXrw6u bRGL+vzAQOFyq+BDz33Ni0BiyXjjif X-Received: by 2002:a17:902:f610:b0:2c2:bd0d:3cf0 with SMTP id d9443c01a7336-2c719016be9mr44955315ad.25.1781878081132; Fri, 19 Jun 2026 07:08:01 -0700 (PDT) Received: from MVIN00352.mvista.com ([2401:4900:1f29:42a9:d9f6:7cbc:746a:c8a6]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7209e1c7esm25591835ad.57.2026.06.19.07.07.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 07:08:00 -0700 (PDT) From: Vijay Anusuri To: openembedded-core@lists.openembedded.org Cc: Vijay Anusuri Subject: [OE-core][scarthgap][patch 1/5] xwayland: Fix CVE-2026-33999 Date: Fri, 19 Jun 2026 19:37:46 +0530 Message-ID: <20260619140750.914225-1-vanusuri@mvista.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Jun 2026 14:08:05 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/239172 Pick patch according to [2] [1] https://lists.x.org/archives/xorg-announce/2026-April/003679.html [2] https://security-tracker.debian.org/tracker/CVE-2026-33999 Signed-off-by: Vijay Anusuri --- .../xwayland/xwayland/CVE-2026-33999.patch | 49 +++++++++++++++++++ .../xwayland/xwayland_23.2.5.bb | 1 + 2 files changed, 50 insertions(+) create mode 100644 meta/recipes-graphics/xwayland/xwayland/CVE-2026-33999.patch diff --git a/meta/recipes-graphics/xwayland/xwayland/CVE-2026-33999.patch b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-33999.patch new file mode 100644 index 0000000000..cd3bf47397 --- /dev/null +++ b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-33999.patch @@ -0,0 +1,49 @@ +From b024ae1749ee58c6fbf863b9a1f5dc440fee2e1b Mon Sep 17 00:00:00 2001 +From: Peter Harris +Date: Thu, 15 Jan 2026 15:54:09 -0500 +Subject: [PATCH] xkb: fix buffer re-use in _XkbSetCompatMap + +If the "compat" buffer has previously been truncated, there will be +unused space in the buffer. The code uses this space, but does not +update the number of valid entries in the buffer. + +In the best case, this leads to the new compat entries being ignored. In the +worst case, if there are any "skipped" compat entries, the number of +valid entries will be corrupted, potentially leading to a buffer read +overrun when processing a future request. + +Set the number of used "compat" entries when re-using previously +allocated space in the buffer. + +CVE-2026-33999, ZDI-CAN-28593 + +This vulnerability was discovered by: +Jan-Niklas Sohn working with TrendAI Zero Day Initiative + +Signed-off-by: Peter Harris +Acked-by: Olivier Fourdan +Part-of: + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/b024ae1749ee58c6fbf863b9a1f5dc440fee2e1b] +CVE: CVE-2026-33999 +Signed-off-by: Vijay Anusuri +--- + xkb/xkb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xkb/xkb.c b/xkb/xkb.c +index 137d70d..2b9004a 100644 +--- a/xkb/xkb.c ++++ b/xkb/xkb.c +@@ -3004,7 +3004,7 @@ _XkbSetCompatMap(ClientPtr client, DeviceIntPtr dev, + return BadAlloc; + } + } +- else if (req->truncateSI) { ++ else if (req->truncateSI || req->firstSI + req->nSI > compat->num_si) { + compat->num_si = req->firstSI + req->nSI; + } + sym = &compat->sym_interpret[req->firstSI]; +-- +2.43.0 + diff --git a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb index 362b110a0b..65f1ed2ae0 100644 --- a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb +++ b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb @@ -35,6 +35,7 @@ SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz \ file://CVE-2025-62230-0001.patch \ file://CVE-2025-62230-0002.patch \ file://CVE-2025-62231.patch \ + file://CVE-2026-33999.patch \ " SRC_URI[sha256sum] = "33ec7ff2687a59faaa52b9b09aa8caf118e7ecb6aed8953f526a625ff9f4bd90" From patchwork Fri Jun 19 14:07:47 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vijay Anusuri X-Patchwork-Id: 90526 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E7F20CD98F2 for ; Fri, 19 Jun 2026 14:08:14 +0000 (UTC) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.43299.1781878086376012552 for ; Fri, 19 Jun 2026 07:08:06 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@mvista.com header.s=google header.b=UyoYNmpt; spf=pass (domain: mvista.com, ip: 209.85.214.169, mailfrom: vanusuri@mvista.com) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2c40397e3caso21715405ad.2 for ; Fri, 19 Jun 2026 07:08:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mvista.com; s=google; t=1781878086; x=1782482886; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6uNBj2hiQyQEgje7DEH5z6S6Vj/GdIG1BAf+fivVOrs=; b=UyoYNmptzKnqr9t05exRQ+5J9A6e919xoqEzAbwdbNYEsv44QTSn5K0xAoxlEmGolk uisSKUvAyxJdYWpKp/Ck9nx09ditBOGO69zQyqYWf88c2VPj95lFzJ8ENEHS5KeHRO+6 wc7vCY20v5hhFOIrMSV1kUZA3xExiE6UneL1M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781878086; x=1782482886; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6uNBj2hiQyQEgje7DEH5z6S6Vj/GdIG1BAf+fivVOrs=; b=oCwIWLZdnA7qnB0QwfR3fuWO00v1P2QQTMqHq8A5Sr+3LNnhvomlkxr/betUgFW+dH 3aT7oiVbU2jHmCNEMbExNTkP4OFkykiUS9ie0yrmi0XBYPVh5mL7vhCuYAfhZ+Zar5U1 MZ760TeF/d7ZPsyc7H+S5n+UGF7vc3dJPwnSZCGaeon5lV6zcZ6FzgjBQ8RLxsmwNYsv Q4U+gjbFy/KDu0tErBV2YxsLb4hj6SRlcLIuCqspbFTh40s2jkBEqMktZ7veKScNRbFQ LdKA6QHaRXWjI6MIEwpD7lwxKqVx6Kl6rpUg4u5UeHZk4Rrsr1pDQh4c11HU17f1maWL WQIg== X-Gm-Message-State: AOJu0YwjVbHp4bf1k2zsYwCuYbohm96kzEb5dRs4crTimt1QAcErixx+ 7B4yD51bNESpfysTublqZ45oK22LfHB8FTAovWMATX/gxlGAjmINknfuabvVii677jqa3IDg/rp 6tUO6ZmE= X-Gm-Gg: AfdE7cmvwDNZPw9ttzN9MptakR1Sc+1mKVFVIzi/R1ZJYjzrhLpSNYseBQePo4SWzEf NmBB7npzvyvnCGDCD72erMPDxamXIeY6rUtDDP46Zbk5aDl0XfOusEE+j7A9E/Mh4L1FgmiMaV/ rsvktvO8fcB7FBHNsn31tHyX/DPqWH9+k1rORexRy37lcDsRbmJGo14YK+yLG1hPxz4Kbo/QbuH jEfBJKB26YUUXvdWul5ikjwvb0lQAUbeujrF+8wYZilQBQV6ujF0eL6ZgYdIE9vG2F6qntp5bHe EsUNPR/I2l6yznZ4zWis0z0Jvz3t0C/JhK8tMO9pf6boDVIcoiTTE08eKoGQQA/u2nxs7Z9iG/q sbvEdaA/iZ82ZOidf5ejlUkDMVlgJ9j7iZC9U+15BMnS7+1mjruSBcjf87Zu0HUAsVDTYsK0gsf lUAqb1zHyVe/CX8RAQqasIw1NZV6/C X-Received: by 2002:a17:902:e84a:b0:2c0:eee2:fc40 with SMTP id d9443c01a7336-2c725ba7171mr30612645ad.3.1781878085566; Fri, 19 Jun 2026 07:08:05 -0700 (PDT) Received: from MVIN00352.mvista.com ([2401:4900:1f29:42a9:d9f6:7cbc:746a:c8a6]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7209e1c7esm25591835ad.57.2026.06.19.07.08.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 07:08:05 -0700 (PDT) From: Vijay Anusuri To: openembedded-core@lists.openembedded.org Cc: Vijay Anusuri Subject: [OE-core][scarthgap][patch 2/5] xwayland: Fix CVE-2026-34000 Date: Fri, 19 Jun 2026 19:37:47 +0530 Message-ID: <20260619140750.914225-2-vanusuri@mvista.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619140750.914225-1-vanusuri@mvista.com> References: <20260619140750.914225-1-vanusuri@mvista.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Jun 2026 14:08:14 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/239173 Pick patch according to [2] [1] https://lists.x.org/archives/xorg-announce/2026-April/003679.html [2] https://security-tracker.debian.org/tracker/CVE-2026-34000 Signed-off-by: Vijay Anusuri --- .../xwayland/xwayland/CVE-2026-34000.patch | 72 +++++++++++++++++++ .../xwayland/xwayland_23.2.5.bb | 1 + 2 files changed, 73 insertions(+) create mode 100644 meta/recipes-graphics/xwayland/xwayland/CVE-2026-34000.patch diff --git a/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34000.patch b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34000.patch new file mode 100644 index 0000000000..7ce7cfa80c --- /dev/null +++ b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34000.patch @@ -0,0 +1,72 @@ +From 81b6a34f90b28c32ad499a78a4f391b7c06daea2 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Wed, 18 Feb 2026 16:03:11 +0100 +Subject: [PATCH] xkb: Fix bounds check in _CheckSetGeom() + +As reported by valgrind: + + == Conditional jump or move depends on uninitialised value(s) + == at 0x5CBE66: SrvXkbAddGeomKeyAlias (XKBGAlloc.c:585) + == by 0x5AC7D5: _CheckSetGeom (xkb.c:5607) + == by 0x5AC952: _XkbSetGeometry (xkb.c:5643) + == by 0x5ACB58: ProcXkbSetGeometry (xkb.c:5684) + == by 0x5B0DAC: ProcXkbDispatch (xkb.c:7070) + == by 0x4A28C5: Dispatch (dispatch.c:553) + == by 0x4B0B24: dix_main (main.c:274) + == by 0x42915E: main (stubmain.c:34) + == Uninitialised value was created by a heap allocation + == at 0x4840B26: malloc (vg_replace_malloc.c:447) + == by 0x5E13B0: AllocateInputBuffer (io.c:981) + == by 0x5E05CD: InsertFakeRequest (io.c:516) + == by 0x4AA860: NextAvailableClient (dispatch.c:3629) + == by 0x5DE0D7: AllocNewConnection (connection.c:628) + == by 0x5DE2C6: EstablishNewConnections (connection.c:692) + == by 0x5DE600: HandleNotifyFd (connection.c:809) + == by 0x5E2598: ospoll_wait (ospoll.c:660) + == by 0x5DA00C: WaitForSomething (WaitFor.c:208) + == by 0x4A26E5: Dispatch (dispatch.c:493) + == by 0x4B0B24: dix_main (main.c:274) + == by 0x42915E: main (stubmain.c:34) + +Each key alias entry contains two key names (the alias and the real key +name), each of size XkbKeyNameLength. + +The current bounds check only validates the first name, allowing +XkbAddGeomKeyAlias to potentially read uninitialized memory when +accessing the second name at &wire[XkbKeyNameLength]. + +To fix this, change the value to check to use 2 * XkbKeyNameLength to +validate the bounds. + +CVE-2026-34000, ZDI-CAN-28679 + +This vulnerability was discovered by: +Jan-Niklas Sohn working with TrendAI Zero Day Initiative + +Signed-off-by: Olivier Fourdan +Acked-by: Peter Hutterer +Part-of: + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/81b6a34f90b28c32ad499a78a4f391b7c06daea2] +CVE: CVE-2026-34000 +Signed-off-by: Vijay Anusuri +--- + xkb/xkb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xkb/xkb.c b/xkb/xkb.c +index 2b9004a..1ba638b 100644 +--- a/xkb/xkb.c ++++ b/xkb/xkb.c +@@ -5603,7 +5603,7 @@ _CheckSetGeom(XkbGeometryPtr geom, xkbSetGeometryReq * req, ClientPtr client) + } + + for (i = 0; i < req->nKeyAliases; i++) { +- if (!_XkbCheckRequestBounds(client, req, wire, wire + XkbKeyNameLength)) ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + 2 * XkbKeyNameLength)) + return BadLength; + + if (XkbAddGeomKeyAlias(geom, &wire[XkbKeyNameLength], wire) == NULL) +-- +2.43.0 + diff --git a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb index 65f1ed2ae0..1a076ab552 100644 --- a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb +++ b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb @@ -36,6 +36,7 @@ SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz \ file://CVE-2025-62230-0002.patch \ file://CVE-2025-62231.patch \ file://CVE-2026-33999.patch \ + file://CVE-2026-34000.patch \ " SRC_URI[sha256sum] = "33ec7ff2687a59faaa52b9b09aa8caf118e7ecb6aed8953f526a625ff9f4bd90" From patchwork Fri Jun 19 14:07:48 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vijay Anusuri X-Patchwork-Id: 90525 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0068ECD4F26 for ; Fri, 19 Jun 2026 14:08:15 +0000 (UTC) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.43192.1781878091038178494 for ; Fri, 19 Jun 2026 07:08:11 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@mvista.com header.s=google header.b=hMT+qMas; spf=pass (domain: mvista.com, ip: 209.85.214.171, mailfrom: vanusuri@mvista.com) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2c6be9cd89bso9843455ad.2 for ; Fri, 19 Jun 2026 07:08:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mvista.com; s=google; t=1781878090; x=1782482890; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KlbRddyTgdBzikdmpU+qMeSaTqlOdyxHsst8sCAkpqc=; b=hMT+qMasVe2CIRfJ64zsyBdQU++LQ3evTAF2bgb6ATN9nUj1ON655RGjK6R/ljooYO y8PsgpzPGpSR6FcUt48dvBCph+XZzAWx5ao+079owqJn2hMIabEhOPi4QMuWZtGQhIeF 9Ix1JCqkEUcqoUGRMcsE6xfKAUtgnynTJECJQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781878090; x=1782482890; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KlbRddyTgdBzikdmpU+qMeSaTqlOdyxHsst8sCAkpqc=; b=rqXB29zsFF3XUr3xxdO9umxPtRT0X4akdxvf0hHBpnCzA77lRQVMbEGwqSV3nw7+4E Y6+vTw7fj3pVQJo4yAG2uRDKbdsqd5D62TUxM45QcaUZ3OPojTMakTXDDPTSJpLFfIBu 2GT/MDOhO4pCxl+xKYjTsHq5FSrIC+WRZ6fWYjeeAu17OQbUk1ZT5QxiOH5iwtDFwGc7 ELQPHJRyiWyVCXjK5Hd7JxYRHXYRU8oca0hzU/QDzeLyctY4BHTg9tIZoPVfG1EY5AcM I+lgp8MMjm01GgVGqzoAIfmArXczLrD8kk9dRZDOTKpO2QMfiDrqmlJfbbOkzncxf7We NDEQ== X-Gm-Message-State: AOJu0YyXlzSPgl7DtSRmqwUFe0wsU01xzQ0VwOqa4kaWaW1h8O+sEVqw ctbAyoQaVkErxF1OLiTJgBA6e0uxRqKIHLjP4nNdqMTlgj3f+uULnhmkluBk+Rapd4nbCH/eZwu 9tnbAMgE= X-Gm-Gg: AfdE7clrm91H8BrTs344Xpp46nDsIJ9OqSvdUwdCcuDQQDILVt2MUnqmeJjSYTWkmlN MdUpaCW0qImeOgyt3jRvsZBwzBORujQ5Dlj5RnoTQNkdfNHbR1P44urvolroWu0gLtyUmP8VgXt ZLT+3MEwfwGCBfbOKBkB6iHjFUJe8y5bL6f0B/N7Lz3tLoD+5igZdjZy9ldwfHn2C5WzkbR+J9s 2HGWuUh5DJeKyMAfSupD1uq1w950IWR75BApWpdgXcAKvNjUFDNdP2qB6mAS3cjV9c8EUn5IsWn jg83Q5BnioD8/DwAf+8uDlPNEBbiT5iNaFFHbTy49luXZEEM96cThiyhpwCZagsZxC0ZqJ3sLpU VBGKYvdGhqx+aq1gQiNNWlbYeDjrqhZVo5zwPJM3lpx3CYMjvEKPVgaxWWkMIWypatlkaiqKADi GV+nz65vUJuLj8OUd3ViEEkm0ClGoE X-Received: by 2002:a17:902:ea01:b0:2c0:a9b3:bdc6 with SMTP id d9443c01a7336-2c718f65036mr42716865ad.30.1781878090409; Fri, 19 Jun 2026 07:08:10 -0700 (PDT) Received: from MVIN00352.mvista.com ([2401:4900:1f29:42a9:d9f6:7cbc:746a:c8a6]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7209e1c7esm25591835ad.57.2026.06.19.07.08.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 07:08:09 -0700 (PDT) From: Vijay Anusuri To: openembedded-core@lists.openembedded.org Cc: Vijay Anusuri Subject: [OE-core][scarthgap][patch 3/5] xwayland: Fix CVE-2026-34001 Date: Fri, 19 Jun 2026 19:37:48 +0530 Message-ID: <20260619140750.914225-3-vanusuri@mvista.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619140750.914225-1-vanusuri@mvista.com> References: <20260619140750.914225-1-vanusuri@mvista.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Jun 2026 14:08:14 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/239174 Pick patch according to [2] [1] https://lists.x.org/archives/xorg-announce/2026-April/003679.html [2] https://security-tracker.debian.org/tracker/CVE-2026-34001 Signed-off-by: Vijay Anusuri --- .../xwayland/xwayland/CVE-2026-34001.patch | 104 ++++++++++++++++++ .../xwayland/xwayland_23.2.5.bb | 1 + 2 files changed, 105 insertions(+) create mode 100644 meta/recipes-graphics/xwayland/xwayland/CVE-2026-34001.patch diff --git a/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34001.patch b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34001.patch new file mode 100644 index 0000000000..a438f5ffcd --- /dev/null +++ b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34001.patch @@ -0,0 +1,104 @@ +From f19ab94ba9c891d801231654267556dc7f32b5e0 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Wed, 18 Feb 2026 16:23:23 +0100 +Subject: [PATCH] miext/sync: Fix use-after-free in miSyncTriggerFence() + +As reported by valgrind: + + == Invalid read of size 8 + == at 0x568C14: miSyncTriggerFence (misync.c:140) + == by 0x540688: ProcSyncTriggerFence (sync.c:1957) + == by 0x540CCC: ProcSyncDispatch (sync.c:2152) + == by 0x4A28C5: Dispatch (dispatch.c:553) + == by 0x4B0B24: dix_main (main.c:274) + == by 0x42915E: main (stubmain.c:34) + == Address 0x17e35488 is 8 bytes inside a block of size 16 free'd + == at 0x4843E43: free (vg_replace_malloc.c:990) + == by 0x53D683: SyncDeleteTriggerFromSyncObject (sync.c:169) + == by 0x53F14D: FreeAwait (sync.c:1208) + == by 0x4DFB06: doFreeResource (resource.c:888) + == by 0x4DFC59: FreeResource (resource.c:918) + == by 0x53E349: SyncAwaitTriggerFired (sync.c:701) + == by 0x568C52: miSyncTriggerFence (misync.c:142) + == by 0x540688: ProcSyncTriggerFence (sync.c:1957) + == by 0x540CCC: ProcSyncDispatch (sync.c:2152) + == by 0x4A28C5: Dispatch (dispatch.c:553) + == by 0x4B0B24: dix_main (main.c:274) + == by 0x42915E: main (stubmain.c:34) + == Block was alloc'd at + == at 0x4840B26: malloc (vg_replace_malloc.c:447) + == by 0x5E50E1: XNFalloc (utils.c:1129) + == by 0x53D772: SyncAddTriggerToSyncObject (sync.c:206) + == by 0x53DCA8: SyncInitTrigger (sync.c:414) + == by 0x5409C7: ProcSyncAwaitFence (sync.c:2089) + == by 0x540D04: ProcSyncDispatch (sync.c:2160) + == by 0x4A28C5: Dispatch (dispatch.c:553) + == by 0x4B0B24: dix_main (main.c:274) + == by 0x42915E: main (stubmain.c:34) + +When walking the list of fences to trigger, miSyncTriggerFence() may +call TriggerFence() for the current trigger, which end up calling the +function SyncAwaitTriggerFired(). + +SyncAwaitTriggerFired() frees the entire await resource, which removes +all triggers from that await - including pNext which may be another +trigger from the same await attached to the same fence. + +On the next iteration, ptl = pNext points to freed memory... + +To avoid the issue, we need to restart the iteration from the beginning +of the list each time a trigger fires, since the callback can modify the +list. + +CVE-2026-34001, ZDI-CAN-28706 + +This vulnerability was discovered by: +Jan-Niklas Sohn working with TrendAI Zero Day Initiative + +Signed-off-by: Olivier Fourdan +Acked-by: Peter Hutterer +Part-of: + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/f19ab94ba9c891d801231654267556dc7f32b5e0] +CVE: CVE-2026-34001 +Signed-off-by: Vijay Anusuri +--- + miext/sync/misync.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/miext/sync/misync.c b/miext/sync/misync.c +index 0931803..e11eba2 100644 +--- a/miext/sync/misync.c ++++ b/miext/sync/misync.c +@@ -131,16 +131,22 @@ miSyncDestroyFence(SyncFence * pFence) + void + miSyncTriggerFence(SyncFence * pFence) + { +- SyncTriggerList *ptl, *pNext; ++ SyncTriggerList *ptl; ++ Bool triggered; + + pFence->funcs.SetTriggered(pFence); + + /* run through triggers to see if any fired */ +- for (ptl = pFence->sync.pTriglist; ptl; ptl = pNext) { +- pNext = ptl->next; +- if ((*ptl->pTrigger->CheckTrigger) (ptl->pTrigger, 0)) +- (*ptl->pTrigger->TriggerFired) (ptl->pTrigger); +- } ++ do { ++ triggered = FALSE; ++ for (ptl = pFence->sync.pTriglist; ptl; ptl = ptl->next) { ++ if ((*ptl->pTrigger->CheckTrigger) (ptl->pTrigger, 0)) { ++ (*ptl->pTrigger->TriggerFired) (ptl->pTrigger); ++ triggered = TRUE; ++ break; ++ } ++ } ++ } while (triggered); + } + + SyncScreenFuncsPtr +-- +2.43.0 + diff --git a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb index 1a076ab552..800d0a8f63 100644 --- a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb +++ b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb @@ -37,6 +37,7 @@ SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz \ file://CVE-2025-62231.patch \ file://CVE-2026-33999.patch \ file://CVE-2026-34000.patch \ + file://CVE-2026-34001.patch \ " SRC_URI[sha256sum] = "33ec7ff2687a59faaa52b9b09aa8caf118e7ecb6aed8953f526a625ff9f4bd90" From patchwork Fri Jun 19 14:07:49 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vijay Anusuri X-Patchwork-Id: 90527 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA0E9CD98F2 for ; Fri, 19 Jun 2026 14:08:24 +0000 (UTC) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.43196.1781878096979728360 for ; Fri, 19 Jun 2026 07:08:17 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@mvista.com header.s=google header.b=XD+IdzHi; spf=pass (domain: mvista.com, ip: 209.85.214.169, mailfrom: vanusuri@mvista.com) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2c6bc87f4d5so8961705ad.1 for ; Fri, 19 Jun 2026 07:08:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mvista.com; s=google; t=1781878096; x=1782482896; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6FBmjQCpas/uWLCBbFjnopZECnqNO4YFnMD0Wuu3nsI=; b=XD+IdzHi/qc0+V9JuBSPvUGsHK0OSLNqmyQsMgQd9IMV4gks98toimAQbQ11SdL6RH tsGYRzxkpV+ASrVnNmmMMmBjqFHY1VZ0oJTugF9dmS1vhEzWFnjUWvYrqgdl9Ygrcb8G L42Liu95+jwyJyMmvzCDkExAJzykrJE3B8Y4Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781878096; x=1782482896; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6FBmjQCpas/uWLCBbFjnopZECnqNO4YFnMD0Wuu3nsI=; b=Z8iqhSXEWI1KCAtMs9diBt+uw8I4aObchoBvOgaPSBlBeCT6ndAWuZoAPK0HSiA7W+ V3C0Lh8LFa9Kpkoww8O4AYBiRzqzbSWmvnq1Aao5MFTyBic1Ov5nDtpTPHYf3w4Ds1Zr cuseoG0Pbrczyb3kwX7Ay1Xsn35k97evX+Ff23c6i2jk+Ld64nGleUWUkksDJE8EBIjW lJtt9Nc1pnN2es9tTXe62wqUo/dlTTllAilYBYN3bTS9MWA92aL/Jq+DhWlWrU23zrER Xqve0S9PRh7bDcv9nDlpir+VgpJD9uaMYOlgGpZRCsGxHAjucV4YRY1JtqyAgyHeDMMp TemQ== X-Gm-Message-State: AOJu0YznlCEg8mj8fCWbnvOlt1tz1amoj7tAH3gE5FfAaowGV4Q0nREQ xwNJkfefilkBFGl3BDa8DtvNhmaTMCCbOyoEcGL7Cfjl3SCvtbE/uMvGfL4XAqWDzSgAmuD+S5t Bi56BX+8= X-Gm-Gg: AfdE7cnUVHxn89sSrZb7XRsoE+Ta7D2If5YtIeueq1jk41vh1L2WkDuSQpDndcOed/l NqGCy0/Je6VFTOLhBOx51o84sjpEAzRgxwzpiURRs8LGTDKBEmiMPjke5eJQELEczq9WCGJr4VE 1pNJ0+DObEeTaJnjuHbgaMFdTQDz/S6k+xIINNd9Riyn9KMba+nMa2wWa6J96SuSfM273I/na/W KPPK+WBn1ATLHbBILGEbMY9Irz7JR7pkwyI29YafHgXmfUyBPlOQMYaTo0V8FwEDVzeazqpkFJ+ 5DzLbMAxCH/qRzxFy2xl2jEOvNnqou7DJYoJIATUeoBS9HUDSdpnshTIHhOcBg8DGemurGEoqII n5128sNRkV5cOXEspObxSX37rxaAj6CFweZ8DuuuwjXFNZKKdPoSd2hslKOVWABo4k/EtYdD75P fGTvm8yEgZBhhdPVvBs0geYwbeSYJL X-Received: by 2002:a17:902:fc46:b0:2bf:2015:5b94 with SMTP id d9443c01a7336-2c718efa6ebmr45982055ad.3.1781878096217; Fri, 19 Jun 2026 07:08:16 -0700 (PDT) Received: from MVIN00352.mvista.com ([2401:4900:1f29:42a9:d9f6:7cbc:746a:c8a6]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7209e1c7esm25591835ad.57.2026.06.19.07.08.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 07:08:15 -0700 (PDT) From: Vijay Anusuri To: openembedded-core@lists.openembedded.org Cc: Vijay Anusuri Subject: [OE-core][scarthgap][patch 4/5] xwayland: Fix CVE-2026-34002 Date: Fri, 19 Jun 2026 19:37:49 +0530 Message-ID: <20260619140750.914225-4-vanusuri@mvista.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619140750.914225-1-vanusuri@mvista.com> References: <20260619140750.914225-1-vanusuri@mvista.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Jun 2026 14:08:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/239175 Pick patch according to [2] [1] https://lists.x.org/archives/xorg-announce/2026-April/003679.html [2] https://security-tracker.debian.org/tracker/CVE-2026-34002 Signed-off-by: Vijay Anusuri --- .../xwayland/xwayland/CVE-2026-34002.patch | 93 +++++++++++++++++++ .../xwayland/xwayland_23.2.5.bb | 1 + 2 files changed, 94 insertions(+) create mode 100644 meta/recipes-graphics/xwayland/xwayland/CVE-2026-34002.patch diff --git a/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34002.patch b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34002.patch new file mode 100644 index 0000000000..131caefcd5 --- /dev/null +++ b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34002.patch @@ -0,0 +1,93 @@ +From f056ce1cc96ed9261052c31524162c78e458f98c Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Wed, 18 Feb 2026 17:02:09 +0100 +Subject: [PATCH] xkb: Fix out-of-bounds read in CheckModifierMap() + +As reported by valgrind: + + == Conditional jump or move depends on uninitialised value(s) + == at 0x547E5B: CheckModifierMap (xkb.c:1972) + == by 0x54A086: _XkbSetMapChecks (xkb.c:2574) + == by 0x54A845: ProcXkbSetMap (xkb.c:2741) + == by 0x556EF4: ProcXkbDispatch (xkb.c:7048) + == by 0x454A8C: Dispatch (dispatch.c:553) + == by 0x462CEB: dix_main (main.c:274) + == by 0x405EA7: main (stubmain.c:34) + == Uninitialised value was created by a heap allocation + == at 0x4840B26: malloc (vg_replace_malloc.c:447) + == by 0x592D5A: AllocateInputBuffer (io.c:981) + == by 0x591F77: InsertFakeRequest (io.c:516) + == by 0x45CA27: NextAvailableClient (dispatch.c:3629) + == by 0x58FA81: AllocNewConnection (connection.c:628) + == by 0x58FC70: EstablishNewConnections (connection.c:692) + == by 0x58FFAA: HandleNotifyFd (connection.c:809) + == by 0x593F42: ospoll_wait (ospoll.c:660) + == by 0x58B9B6: WaitForSomething (WaitFor.c:208) + == by 0x4548AC: Dispatch (dispatch.c:493) + == by 0x462CEB: dix_main (main.c:274) + == by 0x405EA7: main (stubmain.c:34) + +The issue is that the loop in CheckModifierMap() reads from wire without +verifying that the data is within the request bounds. + +The req->totalModMapKeys value could exceed the actual data provided, +causing reads of uninitialized memory. + +To fix that issue, we add a bounds check using _XkbCheckRequestBounds, +but for that, we need to also pass a ClientPtr parameter, which is not +a problem since CheckModifierMap() is a private, static function. + +CVE-2026-34002, ZDI-CAN-28737 + +This vulnerability was discovered by: +Jan-Niklas Sohn working with Trend Micro Zero Day Initiative + +Signed-off-by: Olivier Fourdan +Acked-by: Peter Hutterer +Part-of: + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/f056ce1cc96ed9261052c31524162c78e458f98c] +CVE: CVE-2026-34002 +Signed-off-by: Vijay Anusuri +--- + xkb/xkb.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/xkb/xkb.c b/xkb/xkb.c +index 1ba638b..3fcc6c4 100644 +--- a/xkb/xkb.c ++++ b/xkb/xkb.c +@@ -1940,8 +1940,8 @@ CheckKeyExplicit(XkbDescPtr xkb, + } + + static int +-CheckModifierMap(XkbDescPtr xkb, xkbSetMapReq * req, CARD8 **wireRtrn, +- int *errRtrn) ++CheckModifierMap(ClientPtr client, XkbDescPtr xkb, xkbSetMapReq * req, ++ CARD8 **wireRtrn, int *errRtrn) + { + register CARD8 *wire = *wireRtrn; + CARD8 *start; +@@ -1965,6 +1965,10 @@ CheckModifierMap(XkbDescPtr xkb, xkbSetMapReq * req, CARD8 **wireRtrn, + } + start = wire; + for (i = 0; i < req->totalModMapKeys; i++, wire += 2) { ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + 2)) { ++ *errRtrn = _XkbErrCode3(0x64, req->totalModMapKeys, i); ++ return 0; ++ } + if ((wire[0] < first) || (wire[0] > last)) { + *errRtrn = _XkbErrCode4(0x63, first, last, wire[0]); + return 0; +@@ -2568,7 +2572,7 @@ _XkbSetMapChecks(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq * req, + return BadValue; + } + if ((req->present & XkbModifierMapMask) && +- (!CheckModifierMap(xkb, req, (CARD8 **) &values, &error))) { ++ (!CheckModifierMap(client, xkb, req, (CARD8 **) &values, &error))) { + client->errorValue = error; + return BadValue; + } +-- +2.43.0 + diff --git a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb index 800d0a8f63..e7412e2011 100644 --- a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb +++ b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb @@ -38,6 +38,7 @@ SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz \ file://CVE-2026-33999.patch \ file://CVE-2026-34000.patch \ file://CVE-2026-34001.patch \ + file://CVE-2026-34002.patch \ " SRC_URI[sha256sum] = "33ec7ff2687a59faaa52b9b09aa8caf118e7ecb6aed8953f526a625ff9f4bd90" From patchwork Fri Jun 19 14:07:50 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vijay Anusuri X-Patchwork-Id: 90528 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B425CD4F26 for ; Fri, 19 Jun 2026 14:08:25 +0000 (UTC) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.43200.1781878101270777140 for ; Fri, 19 Jun 2026 07:08:21 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@mvista.com header.s=google header.b=XzqWRjtd; spf=pass (domain: mvista.com, ip: 209.85.214.171, mailfrom: vanusuri@mvista.com) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2c6c57c5c07so15155235ad.1 for ; Fri, 19 Jun 2026 07:08:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mvista.com; s=google; t=1781878101; x=1782482901; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6aR5h2hh9HzcfoXkhdyt71AgUcw7l+xZhN++YTE35rA=; b=XzqWRjtdGhou8Vk2cMoZbm319nc5uhhung30D1VnHBpKTF6qmtgFU7QGgDvWPVivq/ wrwGqewv1anodHceJfcSfefVW1YRrPn3CLRCNW0A84b4O9BOq6JbwUPIo7WbVJ6I5kex qA5nrPQrmolDE2KmZ9oZBETEbdsb02dGPtYvE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781878101; x=1782482901; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6aR5h2hh9HzcfoXkhdyt71AgUcw7l+xZhN++YTE35rA=; b=hjhCCgzctnXBklFjkdFl+cu4DkKEWasut1B5eXrF2UeinrwOPjpctvaDm0gkRnyNCR H6w7UkBo5PcsEf7Mj9XPoc2cgDe6X4B+zX9+J5p7au5X3P6m25dcFBRqbh6tFnh3WKyk t4wa8JOoN03oM7k8Ulo83c41WmbkrU8TRJQH+ZxOiHkofpcAXC5PMCUnsRVngEOaJDJy LcHYUrgxNUobyISQ9ZM+lpAuGEHFJwdYYvNSt2CYAt8U23NXtUgvcKmtdKFAzuHYEWTM Y+YrqCzSqmoVgHDMHEX/+ESGsQsA+Die+UEusc1rVB/kvCbQoluARA4flUpgPM4ZgIts l2Yg== X-Gm-Message-State: AOJu0YxPa+VRyamI+TUKGydP21CvsQMxu2/NkJowUcW7WY4ZZU+zCKe9 9RqaJ/T7oAIMZ7VI9ygVy+XF8TRbINWIYzDrRz6WQoXIvNdPYfOvdwp+nFkg28NtCILiAyRSblP pKAeqBrI= X-Gm-Gg: AfdE7cm238yQsX29znxXHbf6T7VAMIEVj+qO7S1QSXEQhpUEmsvpN8A3B+V5fq3FHiK 7qzDxYt6w4Zl0bRUksi+zEpHY4j8XB0N8iolMH6/BWHW6cq7SFbpJNbUWiqPnNUdLPNtrq8T5/E Zy5GZSLAo+7HwhiJOXTB2oBoCuvlynCilU2ZSY/J5p/AbzEMcmp242dkuXxaI9f2uwIMrbwDLoy uNAXBEb7SCeSU2kq3BR2+jEgLKpYyNF2GQxxvBSAjTPAQEUpAuj6s0K8WV1ShOYqAsmNn8Rbwar o2Ao0EDpW9VQ48xLCSza2GQnIoEFa7vybP9nOL+U5JjrTdj/6g1LnmtBt3lMcGMpU+fNh7raF9L iBDxy8RfkRcFvicRbiwQBavzWM9KVXK9grgKbaysschiMC7XiiADzBF4uxl+i9GZH2Yvb0+ghiA nJvmMoVLI1dyVDvkrj72Z9NfsHwWTdXtgLi2ibvY8= X-Received: by 2002:a17:902:e747:b0:2c2:15c7:ad77 with SMTP id d9443c01a7336-2c718fce355mr41621985ad.37.1781878100566; Fri, 19 Jun 2026 07:08:20 -0700 (PDT) Received: from MVIN00352.mvista.com ([2401:4900:1f29:42a9:d9f6:7cbc:746a:c8a6]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7209e1c7esm25591835ad.57.2026.06.19.07.08.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 07:08:20 -0700 (PDT) From: Vijay Anusuri To: openembedded-core@lists.openembedded.org Cc: Vijay Anusuri Subject: [OE-core][scarthgap][patch 5/5] xwayland: Fix CVE-2026-34003 Date: Fri, 19 Jun 2026 19:37:50 +0530 Message-ID: <20260619140750.914225-5-vanusuri@mvista.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619140750.914225-1-vanusuri@mvista.com> References: <20260619140750.914225-1-vanusuri@mvista.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 19 Jun 2026 14:08:25 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/239176 Pick patch according to [2] [1] https://lists.x.org/archives/xorg-announce/2026-April/003679.html [2] https://security-tracker.debian.org/tracker/CVE-2026-34003 Signed-off-by: Vijay Anusuri --- .../xwayland/xwayland/CVE-2026-34003-1.patch | 113 +++++++++ .../xwayland/xwayland/CVE-2026-34003-2.patch | 223 ++++++++++++++++++ .../xwayland/xwayland_23.2.5.bb | 2 + 3 files changed, 338 insertions(+) create mode 100644 meta/recipes-graphics/xwayland/xwayland/CVE-2026-34003-1.patch create mode 100644 meta/recipes-graphics/xwayland/xwayland/CVE-2026-34003-2.patch diff --git a/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34003-1.patch b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34003-1.patch new file mode 100644 index 0000000000..3a1a9db8cb --- /dev/null +++ b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34003-1.patch @@ -0,0 +1,113 @@ +From b85b00dd7b9eee05e3c12e7ad1fce4fc6671507b Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Mon, 23 Feb 2026 15:52:49 +0100 +Subject: [PATCH] xkb: Add additional bound checking in CheckKeyTypes() + +The function CheckKeyTypes() will loop over the client's request but +won't perform any additional bound checking to ensure that the data +read remains within the request bounds. + +As a result, a specifically crafted request may cause CheckKeyTypes() to +read past the request data, as reported by valgrind: + + == Invalid read of size 2 + == at 0x5A3D1D: CheckKeyTypes (xkb.c:1694) + == by 0x5A6A9C: _XkbSetMapChecks (xkb.c:2515) + == by 0x5A759E: ProcXkbSetMap (xkb.c:2736) + == by 0x5BF832: SProcXkbSetMap (xkbSwap.c:245) + == by 0x5C05ED: SProcXkbDispatch (xkbSwap.c:501) + == by 0x4A20DF: Dispatch (dispatch.c:551) + == by 0x4B03B4: dix_main (main.c:277) + == by 0x428941: main (stubmain.c:34) + == Address is 30 bytes after a block of size 28,672 in arena "client" + == + == Invalid read of size 2 + == at 0x5A3AB6: CheckKeyTypes (xkb.c:1669) + == by 0x5A6A9C: _XkbSetMapChecks (xkb.c:2515) + == by 0x5A759E: ProcXkbSetMap (xkb.c:2736) + == by 0x5BF832: SProcXkbSetMap (xkbSwap.c:245) + == by 0x5C05ED: SProcXkbDispatch (xkbSwap.c:501) + == by 0x4A20DF: Dispatch (dispatch.c:551) + == by 0x4B03B4: dix_main (main.c:277) + == by 0x428941: main (stubmain.c:34) + == Address is 2 bytes after a block of size 28,672 alloc'd + == at 0x4848897: realloc (vg_replace_malloc.c:1804) + == by 0x5E357A: ReadRequestFromClient (io.c:336) + == by 0x4A1FAB: Dispatch (dispatch.c:519) + == by 0x4B03B4: dix_main (main.c:277) + == by 0x428941: main (stubmain.c:34) + == + == Invalid write of size 2 + == at 0x5A3AD7: CheckKeyTypes (xkb.c:1669) + == by 0x5A6A9C: _XkbSetMapChecks (xkb.c:2515) + == by 0x5A759E: ProcXkbSetMap (xkb.c:2736) + == by 0x5BF832: SProcXkbSetMap (xkbSwap.c:245) + == by 0x5C05ED: SProcXkbDispatch (xkbSwap.c:501) + == by 0x4A20DF: Dispatch (dispatch.c:551) + == by 0x4B03B4: dix_main (main.c:277) + == by 0x428941: main (stubmain.c:34) + == Address is 2 bytes after a block of size 28,672 alloc'd + == at 0x4848897: realloc (vg_replace_malloc.c:1804) + == by 0x5E357A: ReadRequestFromClient (io.c:336) + == by 0x4A1FAB: Dispatch (dispatch.c:519) + == by 0x4B03B4: dix_main (main.c:277) + == by 0x428941: main (stubmain.c:34) + == + +To avoid that issue, add additional bounds checking within the loops by +calling _XkbCheckRequestBounds() and report an error if we are to read +past the client's request. + +CVE-2026-34003, ZDI-CAN-28736 + +This vulnerability was discovered by: +Jan-Niklas Sohn working with TrendAI Zero Day Initiative + +Signed-off-by: Olivier Fourdan +Acked-by: Peter Hutterer +Part-of: + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/b85b00dd7b9eee05e3c12e7ad1fce4fc6671507b] +CVE: CVE-2026-34003 +Signed-off-by: Vijay Anusuri +--- + xkb/xkb.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/xkb/xkb.c b/xkb/xkb.c +index 3fcc6c4..0ef634b 100644 +--- a/xkb/xkb.c ++++ b/xkb/xkb.c +@@ -1639,6 +1639,10 @@ CheckKeyTypes(ClientPtr client, + for (i = 0; i < req->nTypes; i++) { + unsigned width; + ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + 1)) { ++ *nMapsRtrn = _XkbErrCode3(0x0b, req->nTypes, i); ++ return 0; ++ } + if (client->swapped && doswap) { + swaps(&wire->virtualMods); + } +@@ -1664,7 +1668,18 @@ CheckKeyTypes(ClientPtr client, + xkbModsWireDesc *preWire; + + mapWire = (xkbKTSetMapEntryWireDesc *) &wire[1]; ++ if (!_XkbCheckRequestBounds(client, req, mapWire, ++ &mapWire[wire->nMapEntries])) { ++ *nMapsRtrn = _XkbErrCode3(0x0c, i, wire->nMapEntries); ++ return 0; ++ } + preWire = (xkbModsWireDesc *) &mapWire[wire->nMapEntries]; ++ if (wire->preserve && ++ !_XkbCheckRequestBounds(client, req, preWire, ++ &preWire[wire->nMapEntries])) { ++ *nMapsRtrn = _XkbErrCode3(0x0d, i, wire->nMapEntries); ++ return 0; ++ } + for (n = 0; n < wire->nMapEntries; n++) { + if (client->swapped && doswap) { + swaps(&mapWire[n].virtualMods); +-- +2.43.0 + diff --git a/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34003-2.patch b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34003-2.patch new file mode 100644 index 0000000000..15b2b946d5 --- /dev/null +++ b/meta/recipes-graphics/xwayland/xwayland/CVE-2026-34003-2.patch @@ -0,0 +1,223 @@ +From d38c563fab5c4a554e0939da39e4d1dadef7cbae Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Mon, 2 Mar 2026 14:09:57 +0100 +Subject: [PATCH] xkb: Add more _XkbCheckRequestBounds() + +Similar to the recent fixes, add more _XkbCheckRequestBounds() to the +functions that loop over the request data, i.e.: + + * CheckKeySyms() + * CheckKeyActions() + * CheckKeyBehaviors() + * CheckVirtualMods() + * CheckKeyExplicit() + * CheckVirtualModMap() + * _XkbSetMapChecks() + +All these are static functions so we can add the client to the parameters +without breaking any API. + +See also: +CVE-2026-34003, ZDI-CAN-28736, CVE-2026-34002, ZDI-CAN-28737 + +v2: Check for "nSyms != 0" in CheckKeySyms() to avoid false positives. + +Signed-off-by: Olivier Fourdan +Acked-by: Peter Hutterer +Part-of: + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/d38c563fab5c4a554e0939da39e4d1dadef7cbae] +CVE: CVE-2026-34003 +Signed-off-by: Vijay Anusuri +--- + xkb/xkb.c | 69 ++++++++++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 55 insertions(+), 14 deletions(-) + +diff --git a/xkb/xkb.c b/xkb/xkb.c +index 0ef634b..6320914 100644 +--- a/xkb/xkb.c ++++ b/xkb/xkb.c +@@ -1752,6 +1752,11 @@ CheckKeySyms(ClientPtr client, + KeySym *pSyms; + register unsigned nG; + ++ /* Check we received enough data to read the next xkbSymMapWireDesc */ ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + 1)) { ++ *errorRtrn = _XkbErrCode3(0x18, i + req->firstKeySym, i); ++ return 0; ++ } + if (client->swapped && doswap) { + swaps(&wire->nSyms); + } +@@ -1790,6 +1795,12 @@ CheckKeySyms(ClientPtr client, + return 0; + } + pSyms = (KeySym *) &wire[1]; ++ if (wire->nSyms != 0) { ++ if (!_XkbCheckRequestBounds(client, req, pSyms, &pSyms[wire->nSyms])) { ++ *errorRtrn = _XkbErrCode3(0x19, i + req->firstKeySym, wire->nSyms); ++ return 0; ++ } ++ } + wire = (xkbSymMapWireDesc *) &pSyms[wire->nSyms]; + } + +@@ -1813,11 +1824,12 @@ CheckKeySyms(ClientPtr client, + } + + static int +-CheckKeyActions(XkbDescPtr xkb, +- xkbSetMapReq * req, +- int nTypes, +- CARD8 *mapWidths, +- CARD16 *symsPerKey, CARD8 **wireRtrn, int *nActsRtrn) ++CheckKeyActions(ClientPtr client, ++ XkbDescPtr xkb, ++ xkbSetMapReq * req, ++ int nTypes, ++ CARD8 *mapWidths, ++ CARD16 *symsPerKey, CARD8 **wireRtrn, int *nActsRtrn) + { + int nActs; + CARD8 *wire = *wireRtrn; +@@ -1828,6 +1840,11 @@ CheckKeyActions(XkbDescPtr xkb, + CHK_REQ_KEY_RANGE2(0x21, req->firstKeyAct, req->nKeyActs, req, (*nActsRtrn), + 0); + for (nActs = i = 0; i < req->nKeyActs; i++) { ++ /* Check we received enough data to read the next byte on the wire */ ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + 1)) { ++ *nActsRtrn = _XkbErrCode3(0x24, i + req->firstKeyAct, i); ++ return 0; ++ } + if (wire[0] != 0) { + if (wire[0] == symsPerKey[i + req->firstKeyAct]) + nActs += wire[0]; +@@ -1846,7 +1863,8 @@ CheckKeyActions(XkbDescPtr xkb, + } + + static int +-CheckKeyBehaviors(XkbDescPtr xkb, ++CheckKeyBehaviors(ClientPtr client, ++ XkbDescPtr xkb, + xkbSetMapReq * req, + xkbBehaviorWireDesc ** wireRtrn, int *errorRtrn) + { +@@ -1872,6 +1890,11 @@ CheckKeyBehaviors(XkbDescPtr xkb, + } + + for (i = 0; i < req->totalKeyBehaviors; i++, wire++) { ++ /* Check we received enough data to read the next behavior */ ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + 1)) { ++ *errorRtrn = _XkbErrCode3(0x36, first, i); ++ return 0; ++ } + if ((wire->key < first) || (wire->key > last)) { + *errorRtrn = _XkbErrCode4(0x33, first, last, wire->key); + return 0; +@@ -1897,7 +1920,8 @@ CheckKeyBehaviors(XkbDescPtr xkb, + } + + static int +-CheckVirtualMods(XkbDescRec * xkb, ++CheckVirtualMods(ClientPtr client, ++ XkbDescRec * xkb, + xkbSetMapReq * req, CARD8 **wireRtrn, int *errorRtrn) + { + register CARD8 *wire = *wireRtrn; +@@ -1909,12 +1933,18 @@ CheckVirtualMods(XkbDescRec * xkb, + if (req->virtualMods & bit) + nMods++; + } ++ /* Check we received enough data for the number of virtual mods expected */ ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + XkbPaddedSize(nMods))) { ++ *errorRtrn = _XkbErrCode3(0x37, nMods, i); ++ return 0; ++ } + *wireRtrn = (wire + XkbPaddedSize(nMods)); + return 1; + } + + static int +-CheckKeyExplicit(XkbDescPtr xkb, ++CheckKeyExplicit(ClientPtr client, ++ XkbDescPtr xkb, + xkbSetMapReq * req, CARD8 **wireRtrn, int *errorRtrn) + { + register CARD8 *wire = *wireRtrn; +@@ -1940,6 +1970,11 @@ CheckKeyExplicit(XkbDescPtr xkb, + } + start = wire; + for (i = 0; i < req->totalKeyExplicit; i++, wire += 2) { ++ /* Check we received enough data to read the next two bytes */ ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + 2)) { ++ *errorRtrn = _XkbErrCode4(0x54, first, last, i); ++ return 0; ++ } + if ((wire[0] < first) || (wire[0] > last)) { + *errorRtrn = _XkbErrCode4(0x53, first, last, wire[0]); + return 0; +@@ -1995,7 +2030,8 @@ CheckModifierMap(ClientPtr client, XkbDescPtr xkb, xkbSetMapReq * req, + } + + static int +-CheckVirtualModMap(XkbDescPtr xkb, ++CheckVirtualModMap(ClientPtr client, ++ XkbDescPtr xkb, + xkbSetMapReq * req, + xkbVModMapWireDesc ** wireRtrn, int *errRtrn) + { +@@ -2019,6 +2055,11 @@ CheckVirtualModMap(XkbDescPtr xkb, + return 0; + } + for (i = 0; i < req->totalVModMapKeys; i++, wire++) { ++ /* Check we received enough data to read the next virtual mod map key */ ++ if (!_XkbCheckRequestBounds(client, req, wire, wire + 1)) { ++ *errRtrn = _XkbErrCode3(0x74, first, i); ++ return 0; ++ } + if ((wire->key < first) || (wire->key > last)) { + *errRtrn = _XkbErrCode4(0x73, first, last, wire->key); + return 0; +@@ -2563,7 +2604,7 @@ _XkbSetMapChecks(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq * req, + } + + if ((req->present & XkbKeyActionsMask) && +- (!CheckKeyActions(xkb, req, nTypes, mapWidths, symsPerKey, ++ (!CheckKeyActions(client, xkb, req, nTypes, mapWidths, symsPerKey, + (CARD8 **) &values, &nActions))) { + client->errorValue = nActions; + return BadValue; +@@ -2571,18 +2612,18 @@ _XkbSetMapChecks(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq * req, + + if ((req->present & XkbKeyBehaviorsMask) && + (!CheckKeyBehaviors +- (xkb, req, (xkbBehaviorWireDesc **) &values, &error))) { ++ (client, xkb, req, (xkbBehaviorWireDesc **) &values, &error))) { + client->errorValue = error; + return BadValue; + } + + if ((req->present & XkbVirtualModsMask) && +- (!CheckVirtualMods(xkb, req, (CARD8 **) &values, &error))) { ++ (!CheckVirtualMods(client, xkb, req, (CARD8 **) &values, &error))) { + client->errorValue = error; + return BadValue; + } + if ((req->present & XkbExplicitComponentsMask) && +- (!CheckKeyExplicit(xkb, req, (CARD8 **) &values, &error))) { ++ (!CheckKeyExplicit(client, xkb, req, (CARD8 **) &values, &error))) { + client->errorValue = error; + return BadValue; + } +@@ -2593,7 +2634,7 @@ _XkbSetMapChecks(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq * req, + } + if ((req->present & XkbVirtualModMapMask) && + (!CheckVirtualModMap +- (xkb, req, (xkbVModMapWireDesc **) &values, &error))) { ++ (client, xkb, req, (xkbVModMapWireDesc **) &values, &error))) { + client->errorValue = error; + return BadValue; + } +-- +2.43.0 + diff --git a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb index e7412e2011..8d5cb05beb 100644 --- a/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb +++ b/meta/recipes-graphics/xwayland/xwayland_23.2.5.bb @@ -39,6 +39,8 @@ SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz \ file://CVE-2026-34000.patch \ file://CVE-2026-34001.patch \ file://CVE-2026-34002.patch \ + file://CVE-2026-34003-1.patch \ + file://CVE-2026-34003-2.patch \ " SRC_URI[sha256sum] = "33ec7ff2687a59faaa52b9b09aa8caf118e7ecb6aed8953f526a625ff9f4bd90"