CVE-2017-7960
Medium · 5.5CVSS
5.5
EPSS
2.0%
Published
Apr 19, 2017
CISA due date
—
Cloudanix analysis
A flaw in a library used by some web applications lets attackers crash the program by uploading a specially made stylesheet file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer over-read in libcroco's cr_input_new_from_uri function during parsing of specially crafted CSS input, leading to denial of service.
Why it matters to the business
Applications that process untrusted CSS files can be crashed, interrupting services such as content rendering or user-upload handling in affected platforms like older Moodle deployments; the issue is years old with low current exploitation likelihood.
How an attack unfolds
An attacker crafts a malicious CSS file that triggers an out-of-bounds read inside libcroco when the cr_input_new_from_uri function processes the URI reference; the malformed file is supplied to any application using the vulnerable library (for example via user-uploaded themes or stylesheets), causing the process to crash.
How to fix it
Upgrade affected packages to the fixed versions; for Moodle (Bitnami) this means moving to version 3.5.18 or later. Where an upgrade path is unavailable, isolate CSS processing or implement strict input validation before handing files to libcroco.
How to confirm the fix worked
Confirm the installed libcroco version is newer than 0.6.12 and that the application reports the patched release (for example Moodle 3.5.18); re-test by feeding a previously crashing CSS sample and verifying the process no longer terminates.
Typical attack path
- Identify an application endpoint that accepts or processes CSS files using libcroco
- Craft a CSS file containing a URI that causes the buffer over-read in cr_input_new_from_uri
- Deliver the file through the normal upload or import path
- Trigger parsing of the stylesheet
- Observe application crash or denial of service
How to detect it
Review web-server and application logs for repeated failures or segmentation faults during CSS parsing or theme import operations; look for sudden process terminations coinciding with user-supplied stylesheet activity.
What your security team should do
- Apply the vendor-supplied update to Moodle 3.5.18 or newer immediately
- Inventory all systems that embed or depend on libcroco 0.6.11/0.6.12
- Add CSS upload paths to web-application firewall rules that limit file size and content patterns
- Monitor for sudden application restarts or crashes correlated with stylesheet processing
The record
The cr_input_new_from_uri function in cr-input.c in libcroco 0.6.11 and 0.6.12 allows remote attackers to cause a denial of service (heap-based buffer over-read) via a crafted CSS file.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | libcroco | 0 | 0.6.13-r1 |
| Alpine:v3.11 | libcroco | 0 | 0.6.13-r1 |
| Alpine:v3.7 | libcroco | 0 | 0.6.12-r1 |
| Alpine:v3.8 | libcroco | 0 | 0.6.12-r2 |
| Alpine:v3.9 | libcroco | 0 | 0.6.12-r2 |
| Debian:7 | libcroco | 0 | 0.6.6-2+deb7u1 |
| Mageia:7 | libcroco | 0 | 0.6.13-1.1.mga7 |
| SUSE:Linux Enterprise Desktop 12 SP3 | libcroco | 0 | 0.6.11-12.3.1 |
| SUSE:Linux Enterprise Desktop 12 SP4 | libcroco | 0 | 0.6.11-12.3.1 |
| SUSE:Linux Enterprise Server 12 SP3 | libcroco | 0 | 0.6.11-12.3.1 |
| SUSE:Linux Enterprise Server 12 SP4 | libcroco | 0 | 0.6.11-12.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | libcroco | 0 | 0.6.11-12.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | libcroco | 0 | 0.6.11-12.3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | libcroco | 0 | 0.6.11-12.3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | libcroco | 0 | 0.6.11-12.3.1 |
| Ubuntu:20.04:LTS | libcroco | 0 | 0.6.13-1 |
| Ubuntu:20.04:LTS | libcroco | 0 | 0.6.13-1ubuntu0.1 |
| Ubuntu:Pro:14.04:LTS | libcroco | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | libcroco | 0 | 0.6.8-2ubuntu1+esm1 |
| Ubuntu:Pro:16.04:LTS | libcroco | 0 | 0.6.11-1ubuntu0.1~esm1 |
| Ubuntu:Pro:18.04:LTS | libcroco | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | libcroco | 0 | 0.6.12-2ubuntu0.1~esm1 |
Related vulnerabilities
- CVE-2017-8871 The cr_parser_parse_selector_core function in cr-parser.c in libcroco 0.6.12 allows… Also affects libcroco
- CVE-2026-62958 libriscv is a RISC-V sandbox and emulator. CWE-125
- CVE-2026-119338 Tesseract is an open source OCR engine. CWE-125
- CVE-2026-119299 gopacket provides packet processing capabilities for Go. CWE-125
- CVE-2026-119722 Blender before 4.5.15 and 5.x before 5.2.3 contains a heap out-of-bounds access… CWE-125
- CVE-2026-119721 Blender before 4.5.15 and 5.x before 5.2.3 contains an out-of-bounds read vulnerability… CWE-125
- CVE-2026-119720 Blender before 4.5.15 and 5.x before 5.2.3 contains a heap out-of-bounds read… CWE-125
- CVE-2026-104063 Scribus before 1.6.7 contains an out-of-bounds read vulnerability in the Mac PICT image… CWE-125