CVE-2016-7945
High · 7.5CVSS
7.5
EPSS
3.0%
Published
Dec 13, 2016
CISA due date
—
Cloudanix analysis
A flaw in a graphics library lets a malicious display server crash or freeze programs that try to talk to it, so updating the affected packages restores normal operation.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflows in length field handling within libXi allow a remote X server to trigger out-of-bounds memory reads/writes or an infinite loop, resulting in process crash or resource exhaustion.
Why it matters to the business
Availability loss for any client application that communicates with an X server; in container or package ecosystems this can halt dependent tooling or services until the vulnerable library is replaced.
How an attack unfolds
An attacker positions a malicious X server on the network; a client using the vulnerable libXi connects and receives protocol replies whose length fields are crafted to overflow during integer calculations, causing the client process to access invalid memory or loop indefinitely.
How to fix it
Upgrade all listed cue packages to the versions that include a patched libXi (cue 0.7.1-r1 and equivalent for bash/fish/zsh completion variants on both Chainguard and Wolfi). Rebuild and redeploy any containers that embed the vulnerable library.
How to confirm the fix worked
Verify that running containers or hosts report the fixed package versions; confirm libXi is at or above 1.7.7 by inspecting shared library files or package metadata after the upgrade.
Typical attack path
- Attacker deploys a rogue X server that speaks the X11 protocol.
- Target client application initiates a connection to the rogue server.
- Server responds with XInput extension replies containing oversized or negative length values.
- libXi performs integer arithmetic on those lengths without proper bounds checking.
- Resulting out-of-bounds access or loop causes denial of service on the client.
How to detect it
Examine application or system logs for unexpected crashes or high CPU loops in processes that use XInput shortly after connecting to an X server; correlate with package version history to identify pre-fix deployments.
What your security team should do
- Immediately update cue and related completion packages to the 0.7.1-r1 releases across all environments.
- Scan container images and build pipelines for any remaining references to pre-0.7.1 cue packages.
- Add dependency pinning and automated rebuild triggers so future library fixes propagate without manual intervention.
- Review network exposure of any X11 clients that could reach untrusted X servers and apply least-privilege network controls.
The record
Multiple integer overflows in X.org libXi before 1.7.7 allow remote X servers to cause a denial of service (out-of-bounds memory access or infinite loop) via vectors involving length fields.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.2 | libxi | 0 | 1.7.4-r1 |
| Alpine:v3.3 | libxi | 0 | 1.7.5.-r1 |
| Debian:10 | libxi | 0 | 2:1.7.8-1 |
| Debian:11 | libxi | 0 | 2:1.7.8-1 |
| Debian:12 | libxi | 0 | 2:1.7.8-1 |
| Debian:13 | libxi | 0 | 2:1.7.8-1 |
| Debian:7 | libxi | 0 | 2:1.6.1-1+deb7u2 |
| Mageia:5 | libx11 | 0 | 1.6.5-1.mga5 |
| Mageia:5 | libxfixes | 0 | 5.0.3-1.mga5 |
| Mageia:5 | libxi | 0 | 1.7.7-1.mga5 |
| Mageia:5 | libxrandr | 0 | 1.4.2-4.1.mga5 |
| Mageia:5 | libxrender | 0 | 0.9.10-1.mga5 |
| Mageia:5 | libxtst | 0 | 1.2.3-1.mga5 |
| Mageia:5 | libxv | 0 | 1.0.11-1.mga5 |
| Mageia:5 | libxvmc | 0 | 1.0.10-1.mga5 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libX11 | 0 | 1.6.2-6.2 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libXfixes | 0 | 5.0.1-5.2 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libXi | 0 | 1.7.4-12.2 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libXrandr | 0 | 1.4.2-5.2 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libXrender | 0 | 0.9.8-5.2 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libXtst | 0 | 1.2.2-5.2 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libXv | 0 | 1.0.10-5.2 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libXvMC | 0 | 1.0.8-5.2 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libX11 | 0 | 1.6.2-8.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libXfixes | 0 | 5.0.1-7.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libXi | 0 | 1.7.4-14.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libXrender | 0 | 0.9.8-7.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libXtst | 0 | 1.2.2-7.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libXv | 0 | 1.0.10-7.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libXvMC | 0 | 1.0.8-7.1 |
| SUSE:Linux Enterprise Server 11 SP4 | xorg-x11-libs | 0 | 7.4-8.26.49.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libX11 | 0 | 1.6.2-6.2 |
| SUSE:Linux Enterprise Server 12 SP1 | libXfixes | 0 | 5.0.1-5.2 |
| SUSE:Linux Enterprise Server 12 SP1 | libXi | 0 | 1.7.4-12.2 |
| SUSE:Linux Enterprise Server 12 SP1 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libXrandr | 0 | 1.4.2-5.2 |
| SUSE:Linux Enterprise Server 12 SP1 | libXrender | 0 | 0.9.8-5.2 |
| SUSE:Linux Enterprise Server 12 SP1 | libXtst | 0 | 1.2.2-5.2 |
| SUSE:Linux Enterprise Server 12 SP1 | libXv | 0 | 1.0.10-5.2 |
| SUSE:Linux Enterprise Server 12 SP1 | libXvMC | 0 | 1.0.8-5.2 |
| SUSE:Linux Enterprise Server 12 SP2 | libX11 | 0 | 1.6.2-8.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libXfixes | 0 | 5.0.1-7.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libXi | 0 | 1.7.4-14.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libXrender | 0 | 0.9.8-7.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libXtst | 0 | 1.2.2-7.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libXv | 0 | 1.0.10-7.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libXvMC | 0 | 1.0.8-7.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libX11 | 0 | 1.6.2-8.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libXfixes | 0 | 5.0.1-7.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libXi | 0 | 1.7.4-14.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libXrender | 0 | 0.9.8-7.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libXtst | 0 | 1.2.2-7.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libXv | 0 | 1.0.10-7.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libXvMC | 0 | 1.0.8-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | xorg-x11-libs | 0 | 7.4-8.26.49.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libX11 | 0 | 1.6.2-6.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libXfixes | 0 | 5.0.1-5.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libXi | 0 | 1.7.4-12.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libXrandr | 0 | 1.4.2-5.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libXrender | 0 | 0.9.8-5.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libXtst | 0 | 1.2.2-5.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libXv | 0 | 1.0.10-5.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libXvMC | 0 | 1.0.8-5.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libX11 | 0 | 1.6.2-8.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libXfixes | 0 | 5.0.1-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libXi | 0 | 1.7.4-14.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libXrender | 0 | 0.9.8-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libXtst | 0 | 1.2.2-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libXv | 0 | 1.0.10-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libXvMC | 0 | 1.0.8-7.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | xorg-x11-libs | 0 | 7.4-8.26.49.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libX11 | 0 | 1.6.2-6.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libXfixes | 0 | 5.0.1-5.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libXi | 0 | 1.7.4-12.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libXrandr | 0 | 1.4.2-5.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libXrender | 0 | 0.9.8-5.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libXtst | 0 | 1.2.2-5.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libXv | 0 | 1.0.10-5.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libXvMC | 0 | 1.0.8-5.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libX11 | 0 | 1.6.2-8.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libXfixes | 0 | 5.0.1-7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libXi | 0 | 1.7.4-14.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libXi | 0 | 1.7.4-17.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libXrender | 0 | 0.9.8-7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libXtst | 0 | 1.2.2-7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libXv | 0 | 1.0.10-7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libXvMC | 0 | 1.0.8-7.1 |
| Ubuntu:Pro:16.04:LTS | libxi | 0 | 2:1.7.6-1ubuntu0.1~esm1 |
Related vulnerabilities
- CVE-2016-7949 Multiple buffer overflows in the (1) XvQueryAdaptors and (2) XvQueryEncodings functions… Also affects libx11
- CVE-2016-7947 Multiple integer overflows in X.org libXrandr before 1.5.1 allow remote X servers to… Also affects libx11
- CVE-2016-7944 Integer overflow in X.org libXfixes before 5.0.3 on 32-bit platforms might allow remote X… Also affects libx11
- CVE-2016-7942 The XGetImage function in X.org libX11 before 1.6.4 might allow remote X servers to gain… Also affects libx11
- CVE-2016-5407 The (1) XvQueryAdaptors and (2) XvQueryEncodings functions in X.org libXv before 1.0.11… Also affects libx11
- CVE-2017-16612 libXcursor before 1.1.15 has various integer overflows that could lead to heap buffer… Also affects xorg-x11-libs
- CVE-2017-13720 In the PatternMatch function in fontfile/fontdir.c in libXfont through 1.5.2 and 2.x… Also affects xorg-x11-libs
- CVE-2026-92824 A flaw was found in libmodulemd. CWE-125