ALAS-2024-2511

Related Vulnerabilities: CVE-2024-31080   CVE-2024-31081   CVE-2024-31083  

A heap-based buffer over-read vulnerability was found in the X.org server's ProcXIGetSelectedEvents() 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. (CVE-2024-31080) A heap-based buffer over-read vulnerability was found in the X.org server's ProcXIPassiveGrabDevice() 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. (CVE-2024-31081) The ProcRenderAddGlyphs() function calls the AllocateGlyph() function to store new glyphs sent by the client to the X server. AllocateGlyph() would return a new glyph with refcount=0 and a re-used glyph would end up not changing the refcount at all. The resulting glyph_new array would thus have multiple entries pointing to the same non-refcounted glyphs. ProcRenderAddGlyphs() may free a glyph, resulting in a use-after-free when the same glyph pointer is then later used. (CVE-2024-31083)

ALAS-2024-2511


Amazon Linux 2 Security Advisory: ALAS-2024-2511
Advisory Release Date: 2024-04-11 01:07 Pacific
Advisory Updated Date: 2024-04-15 12:00 Pacific
Severity: Important

Issue Overview:

A heap-based buffer over-read vulnerability was found in the X.org server's ProcXIGetSelectedEvents() 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. (CVE-2024-31080)

A heap-based buffer over-read vulnerability was found in the X.org server's ProcXIPassiveGrabDevice() 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. (CVE-2024-31081)

The ProcRenderAddGlyphs() function calls the AllocateGlyph() function to store new glyphs sent by the client to the X server. AllocateGlyph() would return a new glyph with refcount=0 and a re-used glyph would end up not changing the refcount at all. The resulting glyph_new array would thus have multiple entries pointing to the same non-refcounted glyphs.

ProcRenderAddGlyphs() may free a glyph, resulting in a use-after-free when the same glyph pointer is then later used. (CVE-2024-31083)


Affected Packages:

xorg-x11-server


Note:

This advisory is applicable to Amazon Linux 2 (AL2) Core repository. Visit this FAQ section for the difference between AL2 Core and AL2 Extras advisories.


Issue Correction:
Run yum update xorg-x11-server to update your system.

New Packages:
aarch64:
    xorg-x11-server-common-1.20.4-22.amzn2.0.6.aarch64
    xorg-x11-server-Xorg-1.20.4-22.amzn2.0.6.aarch64
    xorg-x11-server-Xnest-1.20.4-22.amzn2.0.6.aarch64
    xorg-x11-server-Xdmx-1.20.4-22.amzn2.0.6.aarch64
    xorg-x11-server-Xvfb-1.20.4-22.amzn2.0.6.aarch64
    xorg-x11-server-Xephyr-1.20.4-22.amzn2.0.6.aarch64
    xorg-x11-server-Xwayland-1.20.4-22.amzn2.0.6.aarch64
    xorg-x11-server-devel-1.20.4-22.amzn2.0.6.aarch64
    xorg-x11-server-debuginfo-1.20.4-22.amzn2.0.6.aarch64

i686:
    xorg-x11-server-common-1.20.4-22.amzn2.0.6.i686
    xorg-x11-server-Xorg-1.20.4-22.amzn2.0.6.i686
    xorg-x11-server-Xnest-1.20.4-22.amzn2.0.6.i686
    xorg-x11-server-Xdmx-1.20.4-22.amzn2.0.6.i686
    xorg-x11-server-Xvfb-1.20.4-22.amzn2.0.6.i686
    xorg-x11-server-Xephyr-1.20.4-22.amzn2.0.6.i686
    xorg-x11-server-Xwayland-1.20.4-22.amzn2.0.6.i686
    xorg-x11-server-devel-1.20.4-22.amzn2.0.6.i686
    xorg-x11-server-debuginfo-1.20.4-22.amzn2.0.6.i686

noarch:
    xorg-x11-server-source-1.20.4-22.amzn2.0.6.noarch

src:
    xorg-x11-server-1.20.4-22.amzn2.0.6.src

x86_64:
    xorg-x11-server-common-1.20.4-22.amzn2.0.6.x86_64
    xorg-x11-server-Xorg-1.20.4-22.amzn2.0.6.x86_64
    xorg-x11-server-Xnest-1.20.4-22.amzn2.0.6.x86_64
    xorg-x11-server-Xdmx-1.20.4-22.amzn2.0.6.x86_64
    xorg-x11-server-Xvfb-1.20.4-22.amzn2.0.6.x86_64
    xorg-x11-server-Xephyr-1.20.4-22.amzn2.0.6.x86_64
    xorg-x11-server-Xwayland-1.20.4-22.amzn2.0.6.x86_64
    xorg-x11-server-devel-1.20.4-22.amzn2.0.6.x86_64
    xorg-x11-server-debuginfo-1.20.4-22.amzn2.0.6.x86_64