CVE-2016-7949
Critical · 9.8CVSS
9.8
EPSS
3.7%
Published
Dec 13, 2016
CISA due date
—
Cloudanix analysis
A flaw in a graphics library lets a bad display server send bad data that can take over or crash programs on your computer.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Buffer overflows in XvQueryAdaptors and XvQueryEncodings allow remote X servers to perform out-of-bounds writes via crafted length fields in protocol responses.
Why it matters to the business
Systems using affected libXrender packages face risk of remote code execution or denial of service, potentially disrupting graphics-dependent applications and requiring urgent patching of downstream packages.
How an attack unfolds
An attacker positions a malicious X server that responds to client queries with specially crafted Xv protocol data containing oversized or negative length values, triggering the overflows during parsing in the client library.
How to fix it
Upgrade capslock (Chainguard) to 0.2.1-r1 or later and capslock (Wolfi) to 0.2.1-r1 or later; rebuild any dependent packages against the fixed libXrender.
How to confirm the fix worked
Verify installed package versions match or exceed the fixed releases; test Xv query handling with protocol fuzzing tools to confirm absence of overflow conditions.
Typical attack path
- Attacker compromises or emulates an X server reachable by the victim client
- Victim application using libXrender initiates Xv adaptor or encoding queries
- Server returns responses with manipulated length fields
- Client library performs unchecked writes leading to memory corruption
- Attacker leverages corruption for code execution or crash
How to detect it
Review application logs for crashes during Xv protocol handling; inspect network traffic for anomalous X server responses containing unusual length values in Xv replies; correlate with process memory dumps showing out-of-bounds writes.
What your security team should do
- Immediately update affected capslock packages to the specified fixed versions
- Scan build pipelines and container images for older libXrender dependencies
- Monitor for any new exploit code given the high CVSS and network attack vector
- Apply network segmentation to limit untrusted X server connections where feasible
The record
Multiple buffer overflows in the (1) XvQueryAdaptors and (2) XvQueryEncodings functions in X.org libXrender before 0.9.10 allow remote X servers to trigger out-of-bounds write operations via vectors involving length fields.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | libxrender | 0 | 1:0.9.10-1 |
| Debian:11 | libxrender | 0 | 1:0.9.10-1 |
| Debian:12 | libxrender | 0 | 1:0.9.10-1 |
| Debian:13 | libxrender | 0 | 1:0.9.10-1 |
| Debian:7 | libxrender | 0 | 1:0.9.7-1+deb7u3 |
| 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 | 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 | 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-libXrender | 0 | 7.4-1.20.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 | 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 | 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 | 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-libXrender | 0 | 7.4-1.20.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 | 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 | 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-libXrender | 0 | 7.4-1.20.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 | 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 | 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:14.04:LTS | libxrender | 0 | No fix |
| Ubuntu:18.04:LTS | libxrender | 0 | 1:0.9.10-1 |
| Ubuntu:20.04:LTS | libxrender | 0 | 1:0.9.10-1 |
| Ubuntu:Pro:14.04:LTS | libxrender | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | libxrender | 0 | 1:0.9.9-0ubuntu1+esm1 |
Related vulnerabilities
- CVE-2016-7947 Multiple integer overflows in X.org libXrandr before 1.5.1 allow remote X servers to… Also affects libx11
- CVE-2016-7945 Multiple integer overflows in X.org libXi before 1.7.7 allow remote X servers to cause a… 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-2026-113786 pypdf is a free and open-source pure-python PDF library. CWE-20
- CVE-2026-112081 A vulnerability was determined in hankcs HanLP up to 2.1.0-beta.64. CWE-20
- CVE-2026-111869 A vulnerability was identified in makeplane plane up to 1.4.2. CWE-20