Cloudanix VulnDB

CVE-2017-16612

High · 7.5

CVSS

7.5

EPSS

5.2%

Published

Dec 1, 2017

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in the code that reads certain cursor picture files can make graphics programs crash when they try to open a specially made file.

Exploit Available
Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Buffer Overflow
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Integer overflows in libXcursor cursor parsing allow attacker-controlled values to bypass size checks, resulting in undersized heap allocations followed by out-of-bounds writes when processing malicious cursor images.

Why it matters to the business

Applications that render cursor files (image editors, desktop environments, Wayland compositors) can be forced into denial-of-service crashes; unpatched systems remain exposed years after disclosure because the library is bundled in many Linux distributions.

How an attack unfolds

An attacker crafts a specially malformed cursor file that supplies oversized width/height or offset values. When an affected program such as GIMP or a Wayland client loads the file, libXcursor performs arithmetic that overflows, allocates an undersized buffer, and writes attacker data beyond its bounds, crashing the process.

How to fix it

Upgrade libXcursor to version 1.1.15 or later on all affected systems; rebuild and restart any statically linked applications; apply distribution security updates for Debian, Ubuntu, and other packages that ship the library.

How to confirm the fix worked

Run 'xcursor-config --version' or inspect the shared library file to confirm a version of 1.1.15 or newer; re-test by attempting to load a known-malformed cursor in GIMP or a Wayland client and verify the process no longer crashes.

Typical attack path

  1. Attacker generates a malicious cursor file containing integer-overflow-triggering dimensions or offsets
  2. Victim opens the file in any application linked against a vulnerable libXcursor
  3. libXcursor performs the overflowing calculation and writes beyond the allocated heap buffer
  4. Process terminates with a segmentation fault or abort, achieving denial of service

How to detect it

Review application crash logs and core dumps for segmentation faults occurring inside libXcursor or xcursor.c when users open .cur or .png cursor assets; correlate with file-access timestamps for recently received cursor files.

What your security team should do

  • Identify all systems and containers that depend on libXcursor and schedule immediate updates
  • Add libXcursor version checks to vulnerability scanning and SBOM processes
  • Monitor for application crashes correlated with cursor file handling until patches are deployed

The record

libXcursor before 1.1.15 has various integer overflows that could lead to heap buffer overflows when processing malicious cursors, e.g., with programs like GIMP. It is also possible that an attack vector exists against the related code in cursor/xcursor.c in Wayland through 1.14.0.

Affected packages

Ecosystem Package Introduced Fixed
Alpine:v3.10 libxcursor 0 1.1.15-r0
Alpine:v3.11 libxcursor 0 1.1.15-r0
Alpine:v3.12 libxcursor 0 1.1.15-r0
Alpine:v3.13 libxcursor 0 1.1.15-r0
Alpine:v3.14 libxcursor 0 1.1.15-r0
Alpine:v3.15 libxcursor 0 1.1.15-r0
Alpine:v3.16 libxcursor 0 1.1.15-r0
Alpine:v3.17 libxcursor 0 1.1.15-r0
Alpine:v3.18 libxcursor 0 1.1.15-r0
Alpine:v3.19 libxcursor 0 1.1.15-r0
Alpine:v3.20 libxcursor 0 1.1.15-r0
Alpine:v3.21 libxcursor 0 1.1.15-r0
Alpine:v3.22 libxcursor 0 1.1.15-r0
Alpine:v3.4 libxcursor 0 1.1.15-r0
Alpine:v3.5 libxcursor 0 1.1.15-r0
Alpine:v3.6 libxcursor 0 1.1.15-r0
Alpine:v3.7 libxcursor 0 1.1.15-r0
Alpine:v3.8 libxcursor 0 1.1.15-r0
Alpine:v3.9 libxcursor 0 1.1.15-r0
Debian:11 libxcursor 0 1:1.1.14-3.1
Debian:11 wayland 0 1.14.0-2
Debian:12 libxcursor 0 1:1.1.14-3.1
Debian:12 wayland 0 1.14.0-2
Debian:13 libxcursor 0 1:1.1.14-3.1
Debian:13 wayland 0 1.14.0-2
Debian:7 libxcursor 0 1:1.1.13-1+deb7u2
Debian:8 libxcursor 0 1:1.1.14-1+deb8u1
Debian:9 libxcursor 0 1:1.1.14-1+deb9u1
Mageia:5 libxcursor 0 1.1.14-5.1.mga5
Mageia:6 libxcursor 0 1.1.14-6.1.mga6
SUSE:Linux Enterprise Desktop 12 SP2 libXcursor 0 1.1.14-4.3.1
SUSE:Linux Enterprise Desktop 12 SP3 libXcursor 0 1.1.14-4.3.1
SUSE:Linux Enterprise Server 11 SP4 xorg-x11-libs 0 7.4-8.26.50.5.3
SUSE:Linux Enterprise Server 12 SP2 libXcursor 0 1.1.14-4.3.1
SUSE:Linux Enterprise Server 12 SP3 libXcursor 0 1.1.14-4.3.1
SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 libXcursor 0 1.1.14-4.3.1
SUSE:Linux Enterprise Server for SAP Applications 11 SP4 xorg-x11-libs 0 7.4-8.26.50.5.3
SUSE:Linux Enterprise Server for SAP Applications 12 SP2 libXcursor 0 1.1.14-4.3.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP3 libXcursor 0 1.1.14-4.3.1
SUSE:Linux Enterprise Software Development Kit 11 SP4 xorg-x11-libs 0 7.4-8.26.50.5.3
SUSE:Linux Enterprise Software Development Kit 12 SP2 libXcursor 0 1.1.14-4.3.1
SUSE:Linux Enterprise Software Development Kit 12 SP3 libXcursor 0 1.1.14-4.3.1
Ubuntu:14.04:LTS libxcursor 0 1:1.1.14-1ubuntu0.14.04.1
Ubuntu:14.04:LTS wayland 0 1.4.0-1ubuntu1.1
Ubuntu:16.04:LTS libxcursor 0 1:1.1.14-1ubuntu0.16.04.1
Ubuntu:16.04:LTS wayland 0 1.12.0-1~ubuntu16.04.3
openSUSE:Tumbleweed libXcursor 0 1.2.0-1.9

Related vulnerabilities