CVE-2024-31082
High · 7.3CVSS
7.3
EPSS
0.3%
Published
Apr 4, 2024
CISA due date
—
Cloudanix analysis
A problem in the software that draws windows on the screen can let someone already on the computer read pieces of its memory and make the screen system crash.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer over-read in X.org server's ProcAppleDRICreatePixmap() triggered by byte-swapped length values, enabling unauthorized reads of heap memory that are transmitted back to the client until an unmapped page causes a crash.
Why it matters to the business
Local attackers can crash the X server and leak limited heap contents on affected systems, leading to denial of service and potential exposure of sensitive in-memory data in environments using the vulnerable package.
How an attack unfolds
An attacker with local access connects to the X server using a client of differing endianness and sends crafted requests to ProcAppleDRICreatePixmap containing manipulated byte-swapped lengths, causing the server to perform out-of-bounds heap reads and return the data until a segmentation fault occurs.
How to fix it
Upgrade the X.org server package to a fixed release; for the listed affected product, update cert-manager-fips-1.13 to version 1.13.5-r3 or later.
How to confirm the fix worked
Confirm the installed X server package version matches or exceeds the fixed release and verify absence of the vulnerable ProcAppleDRICreatePixmap implementation through code review or package manifests.
Typical attack path
- Gain local user access on the target system
- Connect to the running X server as a client
- Issue ProcAppleDRICreatePixmap requests with swapped length values
- Trigger repeated out-of-bounds reads that return heap data and eventually crash the server
How to detect it
Examine X server logs and system crash reports for segmentation faults originating from ProcAppleDRICreatePixmap, and correlate with client connections that exhibit endianness mismatches.
What your security team should do
- Apply the vendor-supplied update to all systems running the vulnerable X.org package
- Limit local access to X server instances where feasible
- Review and restrict clients that may present differing endianness
The record
A heap-based buffer over-read vulnerability was found in the X.org server's ProcAppleDRICreatePixmap() function. This issue occurs when byte-swapped length values are used in replies, potentially leading to memory leakage and segmentation faults, particularly when triggered by a client with a different endianness. This vulnerability could be exploited by an attacker to cause the X server to read heap memory values and then transmit them back to the client until encountering an unmapped page, resulting in a crash. Despite the attacker's inability to control the specific memory copied into the replies, the small length values typically stored in a 32-bit integer can result in significant attempted out-of-bounds reads.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | Xnest | 0 | 21.1.12-r0 |
| Chainguard | Xvfb | 0 | 21.1.12-r0 |
| Chainguard | gtf | 0 | 21.1.12-r0 |
| Chainguard | xorg-server | 0 | 21.1.12-r0 |
| Chainguard | xorg-server-common | 0 | 21.1.12-r0 |
| Chainguard | xorg-server-dev | 0 | 21.1.12-r0 |
| Chainguard | xorg-server-doc | 0 | 21.1.12-r0 |
| Chainguard | xvfb-run | 0 | 21.1.12-r0 |
| Debian:10 | xorg-server | 0 | No fix |
| Debian:11 | xorg-server | 0 | 2:1.20.11-1+deb11u13 |
| Debian:12 | xorg-server | 0 | 2:21.1.7-3+deb12u7 |
| Debian:13 | xorg-server | 0 | 2:21.1.11-3 |
| SUSE:Enterprise Storage 7.1 | xorg-x11-server | 0 | 1.20.3-150200.22.5.96.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | xorg-x11-server | 0 | 1.20.3-150200.22.5.96.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | xorg-x11-server | 0 | 1.20.3-150200.22.5.96.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | xorg-x11-server | 0 | 1.20.3-150400.38.48.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | xorg-x11-server | 0 | 1.20.3-150400.38.48.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | xorg-x11-server | 0 | 21.1.4-150500.7.26.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP5 | xorg-x11-server | 0 | 21.1.4-150500.7.26.1 |
| SUSE:Linux Enterprise Server 12 SP5 | xorg-x11-server | 0 | 1.19.6-10.71.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | xorg-x11-server | 0 | 1.20.3-150200.22.5.96.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | xorg-x11-server | 0 | 1.20.3-150200.22.5.96.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | xorg-x11-server | 0 | 1.20.3-150400.38.48.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | xorg-x11-server | 0 | 1.19.6-10.71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | xorg-x11-server | 0 | 1.20.3-150200.22.5.96.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | xorg-x11-server | 0 | 1.20.3-150200.22.5.96.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | xorg-x11-server | 0 | 1.20.3-150400.38.48.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | xorg-x11-server | 0 | 1.19.6-10.71.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP5 | xorg-x11-server | 0 | 1.20.3-150200.22.5.96.1 |
| SUSE:Manager Proxy 4.3 | xorg-x11-server | 0 | 1.20.3-150400.38.48.1 |
| SUSE:Manager Server 4.3 | xorg-x11-server | 0 | 1.20.3-150400.38.48.1 |
| Ubuntu:20.04:LTS | xorg-server | 0 | 2:1.20.13-1ubuntu1~20.04.16 |
| Ubuntu:22.04:LTS | xorg-server | 0 | 2:21.1.4-2ubuntu1.7~22.04.9 |
| Ubuntu:22.04:LTS | xwayland | 0 | 2:22.1.1-1ubuntu0.12 |
| Ubuntu:23.10 | xorg-server | 0 | 2:21.1.7-3ubuntu2.8 |
| Ubuntu:23.10 | xwayland | 0 | 2:23.2.0-1ubuntu0.5 |
| Ubuntu:24.04:LTS | xorg-server | 0 | 2:21.1.12-1ubuntu1 |
| Ubuntu:24.10 | xorg-server | 0 | 2:21.1.12-1ubuntu1 |
| Ubuntu:Pro:14.04:LTS | xorg-server | 0 | 2:1.15.1-0ubuntu2.11+esm11 |
| Ubuntu:Pro:16.04:LTS | xorg-server | 0 | 2:1.18.4-0ubuntu0.12+esm12 |
| Ubuntu:Pro:16.04:LTS | xorg-server-hwe-16.04 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | xorg-server | 0 | 2:1.19.6-1ubuntu4.15+esm7 |
| Ubuntu:Pro:18.04:LTS | xorg-server-hwe-18.04 | 0 | No fix |
| Wolfi | Xnest | 0 | 21.1.12-r0 |
| Wolfi | Xvfb | 0 | 21.1.12-r0 |
| Wolfi | gtf | 0 | 21.1.12-r0 |
| Wolfi | xorg-server | 0 | 21.1.12-r0 |
| Wolfi | xorg-server-common | 0 | 21.1.12-r0 |
| Wolfi | xorg-server-dev | 0 | 21.1.12-r0 |
| Wolfi | xorg-server-doc | 0 | 21.1.12-r0 |
| Wolfi | xvfb-run | 0 | 21.1.12-r0 |
| openSUSE:Leap 15.5 | xorg-x11-server | 0 | 21.1.4-150500.7.26.1 |
| openSUSE:Tumbleweed | xorg-x11-server | 0 | 21.1.12-1.1 |
Related vulnerabilities
- CVE-2024-31083 A use-after-free vulnerability was found in the ProcRenderAddGlyphs() function of Xorg… Also affects Xnest
- CVE-2024-31081 A heap-based buffer over-read vulnerability was found in the X.org server's… Also affects Xnest
- CVE-2024-31080 A heap-based buffer over-read vulnerability was found in the X.org server's… Also affects Xnest
- CVE-2024-21886 A heap buffer overflow flaw was found in the DisableDevice function in the X.Org server. Also affects Xnest
- CVE-2024-21885 A flaw was found in X.Org server. Also affects Xnest
- CVE-2024-0229 An out-of-bounds memory access flaw was found in the X.Org server. Also affects Xnest
- CVE-2023-6816 A flaw was found in X.Org server. Also affects Xnest
- CVE-2023-5574 A use-after-free flaw was found in xorg-x11-server-Xvfb. Also affects Xnest