CVE-2016-10087
High · 7.5CVSS
7.5
EPSS
5.1%
Published
Jan 30, 2017
CISA due date
—
Cloudanix analysis
A flaw in how antivirus software handles certain image files can make the scanner crash, briefly stopping malware checks until it is restarted.
- 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
The png_set_text_2 function in libpng allows a NULL pointer dereference when a text chunk is loaded into a png structure, removed, and then another text chunk is added, resulting in application crash.
Why it matters to the business
Antivirus scanning services may become unavailable when processing specially crafted image files, interrupting malware detection workflows and requiring restarts or failover.
How an attack unfolds
An attacker crafts a PNG image containing specific text chunks that trigger the sequence of load, remove, and add operations in libpng used by ClamAV; the file is submitted to a ClamAV scanner, causing a crash and denial of service.
How to fix it
Upgrade affected ClamAV packages to the listed fixed versions: 0.99.2+dfsg-1 on Debian 11/12/13/14, 0.99.2+addedllvm-0ubuntu0.14.04.1 on Ubuntu 14.04 LTS, and 0.99.2+dfsg-0ubuntu0.16.04.1 on Ubuntu 16.04 LTS. Rebuild any custom packages that statically link the vulnerable libpng.
How to confirm the fix worked
Verify installed ClamAV versions match the fixed releases above; test scanning a known non-malicious PNG before and after upgrade to confirm stability; monitor for absence of crashes on PNG processing.
Typical attack path
- Craft malicious PNG with targeted text chunk sequence
- Deliver PNG to target via email, download, or file share
- Trigger ClamAV scan of the PNG file
- Induce NULL pointer dereference and crash
How to detect it
Review ClamAV process logs and system crash dumps for segmentation faults or NULL dereference errors during PNG file handling; correlate with file access timestamps of PNGs submitted to the scanner.
What your security team should do
- Prioritize patching all listed ClamAV deployments within standard change windows
- Enable automatic updates for ClamAV where possible
- Add PNG file scanning to regression tests after upgrades
The record
The png_set_text_2 function in libpng 0.71 before 1.0.67, 1.2.x before 1.2.57, 1.4.x before 1.4.20, 1.5.x before 1.5.28, and 1.6.x before 1.6.27 allows context-dependent attackers to cause a NULL pointer dereference vectors involving loading a text chunk into a png structure, removing the text, and then adding another text chunk to the structure.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | libpng1.6 | 0 | 1.6.27-1 |
| Debian:12 | libpng1.6 | 0 | 1.6.27-1 |
| Debian:13 | libpng1.6 | 0 | 1.6.27-1 |
| Mageia:5 | libpng | 0 | 1.6.27-1.mga5 |
| Mageia:5 | libpng12 | 0 | 1.2.57-1.mga5 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libpng15 | 0 | 1.5.22-9.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libpng16 | 0 | 1.6.8-14.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libpng15 | 0 | 1.5.22-9.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libpng16 | 0 | 1.6.8-14.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libpng12-0 | 0 | 1.2.31-5.43.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libpng15 | 0 | 1.5.22-9.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libpng16 | 0 | 1.6.8-14.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libpng15 | 0 | 1.5.22-9.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libpng16 | 0 | 1.6.8-14.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libpng15 | 0 | 1.5.22-9.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libpng16 | 0 | 1.6.8-14.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libpng12-0 | 0 | 1.2.31-5.43.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libpng15 | 0 | 1.5.22-9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libpng16 | 0 | 1.6.8-14.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libpng15 | 0 | 1.5.22-9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libpng16 | 0 | 1.6.8-14.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libpng12-0 | 0 | 1.2.31-5.43.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libpng16 | 0 | 1.6.8-14.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libpng12 | 0 | 1.2.50-19.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libpng16 | 0 | 1.6.8-14.1 |
| Ubuntu:14.04:LTS | libpng | 0 | 1.2.50-1ubuntu2.14.04.3 |
| Ubuntu:16.04:LTS | libpng | 0 | 1.2.54-1ubuntu1.1 |
| Ubuntu:18.04:LTS | libpng1.6 | 0 | 1.6.34-1ubuntu0.18.04.1 |
| Ubuntu:Pro:16.04:LTS | libpng1.6 | 0 | No fix |
| nuget | libpng | 0.8 | No fix |
| nuget | libpng | 1.2.0 | No fix |
| nuget | libpng | 1.4.0 | No fix |
| nuget | libpng | 1.5.0 | No fix |
| nuget | libpng | 1.6.0 | No fix |
| openSUSE:Tumbleweed | libpng16 | 0 | 1.6.37-3.3 |
Related vulnerabilities
- CVE-2019-7317 png_image_free in png.c in libpng 1.6.x before 1.6.37 has a use-after-free because… Also affects libpng1.6
- CVE-2015-8472 Buffer overflow in the png_set_PLTE function in libpng before 1.0.65, 1.1.x and 1.2.x… Also affects libpng1.6
- CVE-2015-8126 Multiple buffer overflows in the (1) png_set_PLTE and (2) png_get_PLTE functions in… Also affects libpng
- CVE-2012-3425 The png_push_read_zTXt function in pngpread.c in libpng 1.0.x before 1.0.58, 1.2.x before… Also affects libpng
- CVE-2010-1205 Buffer overflow in pngpread.c in libpng before 1.2.44 and 1.4.x before 1.4.3, as used in… Also affects libpng
- CVE-2026-34757 LIBPNG is a reference library for use in applications that read, create, and manipulate… Also affects libpng16
- CVE-2026-33636 LIBPNG is a reference library for use in applications that read, create, and manipulate… Also affects libpng16
- CVE-2026-33416 LIBPNG is a reference library for use in applications that read, create, and manipulate… Also affects libpng16