{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-121604","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","state":"PUBLISHED","assignerShortName":"VulnCheck","dateReserved":"2026-11-03T16:19:16.465Z","datePublished":"2026-11-03T16:26:55.569Z","dateUpdated":"2026-11-03T16:26:55.569Z"},"containers":{"cna":{"providerMetadata":{"orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","shortName":"VulnCheck","dateUpdated":"2026-11-03T16:26:55.569Z"},"datePublic":"2026-05-21T00:00:00.000Z","title":"wlroots before 0.20.2 Out-of-Bounds Read via read_surface_class() in xwm.c","descriptions":[{"lang":"en","value":"wlroots before 0.20.2 contains an out-of-bounds read vulnerability in read_surface_class() in xwayland/xwm.c that allows local X11 clients to leak compositor heap memory. Attackers can set a WM_CLASS property with a NUL-terminated instance but unterminated class, exposing over-read heap bytes as the window class or app_id over IPC."}],"problemTypes":[{"descriptions":[{"lang":"en","description":"Out-of-bounds Read","cweId":"CWE-125","type":"CWE"}]}],"affected":[{"vendor":"wlroots","product":"wlroots","defaultStatus":"unaffected","versions":[{"version":"0","lessThan":"0.20.2","status":"affected","versionType":"semver"}],"collectionURL":"https://gitlab.freedesktop.org/wlroots/wlroots","repo":"https://gitlab.freedesktop.org/wlroots/wlroots"}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","attackVector":"LOCAL","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"LOW","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":4.8,"baseSeverity":"MEDIUM"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":3.3,"baseSeverity":"LOW"}}],"references":[{"url":"https://gitlab.freedesktop.org/wlroots/wlroots/-/work_items/4092","tags":["issue-tracking"]},{"url":"https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5374","tags":["issue-tracking"]},{"url":"https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/851cdd0089004884bd85a95ad21f04009cb5a53a","tags":["patch"]},{"url":"https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/4412992469540b1d578cb94a5cd4e6e5829812dc","tags":["patch"]},{"url":"https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/0.20.2","tags":["release-notes"]},{"url":"https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/0.20.1/xwayland/xwm.c#L661-L678","tags":["technical-description"]},{"name":"VulnCheck Advisory: wlroots before 0.20.2 Out-of-Bounds Read via read_surface_class() in xwm.c","tags":["third-party-advisory"],"url":"https://www.vulncheck.com/advisories/wlroots-before-0.20.2-out-of-bounds-read-via-read-surface-class-in-xwm-c"}],"credits":[{"lang":"en","value":"Tristan Madani (Talence Security)","type":"finder"},{"lang":"en","value":"Simon Ser","type":"remediation developer"}],"x_generator":{"engine":"vulncheck-endgame"}}}}