CVE-2018-14498
Medium · 6.5CVSS
6.5
EPSS
3.1%
Published
Mar 7, 2019
CISA due date
—
Cloudanix analysis
A flaw in an image library can make programs that open certain picture files crash when they encounter a specially made image.
- 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 get_8bit_row when parsing an 8-bit BMP with color indices exceeding the palette size, resulting in application crash.
Why it matters to the business
Image-processing applications and services can be crashed by specially crafted image files, leading to denial of service and operational disruption until the process is restarted.
How an attack unfolds
An attacker creates a malicious 8-bit BMP file where one or more palette indices are larger than the actual number of palette entries and delivers the file to a victim application that uses the vulnerable libjpeg-turbo library; when the library attempts to read the row data, the out-of-range index triggers the buffer over-read and crash.
How to fix it
Upgrade libjpeg-turbo to the commit 9c78a04df4e44ef6487eee99c4258397f4fdca55 or later; rebuild and redeploy all dependent applications and libraries that statically or dynamically link the affected version.
How to confirm the fix worked
Confirm the installed libjpeg-turbo binary or source matches or exceeds commit 9c78a04df4e44ef6487eee99c4258397f4fdca55; re-test with the original proof-of-concept BMP to verify the crash no longer occurs.
Typical attack path
- Craft a BMP image with an 8-bit palette and out-of-range color indices
- Host or transmit the malformed image to a target that processes it with libjpeg-turbo
- Trigger image decoding in the vulnerable code path
- Cause heap over-read and subsequent application crash
How to detect it
Monitor application and system logs for unexpected crashes or segmentation faults during BMP decoding; review process dumps or core files that show faults originating in rdbmp.c or get_8bit_row.
What your security team should do
- Prioritize upgrade of libjpeg-turbo in all image-handling services within the next maintenance window
- Scan build pipelines and container images for the vulnerable commit range and enforce the fixed version
- Add the malicious BMP pattern to regression test suites for image parsers
The record
get_8bit_row in rdbmp.c in libjpeg-turbo through 1.5.90 and MozJPEG through 3.3.1 allows attackers to cause a denial of service (heap-based buffer over-read and application crash) via a crafted 8-bit BMP in which one or more of the color indices is out of range for the number of palette entries.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | turbojpeg-devel | 0 | 1.5.3-10.el8 |
| Alpine:v3.7 | libjpeg-turbo | 0 | 1.5.3-r3 |
| Alpine:v3.8 | libjpeg-turbo | 0 | 1.5.3-r5 |
| Alpine:v3.9 | libjpeg-turbo | 0 | 1.5.3-r5 |
| Debian:11 | libjpeg-turbo | 0 | 1:2.0.5-1 |
| Debian:12 | libjpeg-turbo | 0 | 1:2.0.5-1 |
| Debian:13 | libjpeg-turbo | 0 | 1:2.0.5-1 |
| Debian:8 | libjpeg-turbo | 0 | 1:1.3.1-12+deb8u2 |
| Debian:9 | libjpeg-turbo | 0 | 1:1.5.1-2+deb9u1 |
| Mageia:6 | libjpeg | 0 | 1.5.1-1.3.mga6 |
| Red Hat:enterprise_linux:7::client | libjpeg-turbo | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::client | libjpeg-turbo-debuginfo | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::client | libjpeg-turbo-devel | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::client | libjpeg-turbo-static | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::client | libjpeg-turbo-utils | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::client | turbojpeg | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::client | turbojpeg-devel | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::computenode | libjpeg-turbo | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::computenode | libjpeg-turbo-debuginfo | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::computenode | libjpeg-turbo-devel | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::computenode | libjpeg-turbo-static | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::computenode | libjpeg-turbo-utils | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::computenode | turbojpeg | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::computenode | turbojpeg-devel | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::server | libjpeg-turbo | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::server | libjpeg-turbo-debuginfo | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::server | libjpeg-turbo-devel | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::server | libjpeg-turbo-static | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::server | libjpeg-turbo-utils | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::server | turbojpeg | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::server | turbojpeg-devel | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::workstation | libjpeg-turbo | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::workstation | libjpeg-turbo-debuginfo | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::workstation | libjpeg-turbo-devel | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::workstation | libjpeg-turbo-static | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::workstation | libjpeg-turbo-utils | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::workstation | turbojpeg | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:7::workstation | turbojpeg-devel | 0 | 0:1.2.90-8.el7 |
| Red Hat:enterprise_linux:8::appstream | libjpeg-turbo | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::appstream | libjpeg-turbo-debuginfo | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::appstream | libjpeg-turbo-debugsource | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::appstream | libjpeg-turbo-devel | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::appstream | libjpeg-turbo-utils | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::appstream | libjpeg-turbo-utils-debuginfo | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::appstream | turbojpeg | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::appstream | turbojpeg-debuginfo | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::appstream | turbojpeg-devel | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | libjpeg-turbo | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | libjpeg-turbo-debuginfo | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | libjpeg-turbo-debugsource | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | libjpeg-turbo-devel | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | libjpeg-turbo-utils | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | libjpeg-turbo-utils-debuginfo | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | turbojpeg | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | turbojpeg-debuginfo | 0 | 0:1.5.3-10.el8 |
| Red Hat:enterprise_linux:8::crb | turbojpeg-devel | 0 | 0:1.5.3-10.el8 |
| Rocky Linux:8 | libjpeg-turbo | 0 | 0:1.5.3-10.el8 |
| SUSE:Linux Enterprise Desktop 12 SP3 | libjpeg-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Desktop 12 SP3 | libjpeg62-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Desktop 12 SP4 | libjpeg-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Desktop 12 SP4 | libjpeg62-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Module for Basesystem 15 | libjpeg-turbo | 0 | 1.5.3-5.7.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 | libjpeg62-turbo | 0 | 1.5.3-5.7.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 | libjpeg-turbo | 0 | 1.5.3-5.7.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 | libjpeg-turbo | 0 | 1.5.3-5.7.1 |
| SUSE:Linux Enterprise Server 12 SP3 | libjpeg-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Server 12 SP3 | libjpeg62-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Server 12 SP4 | libjpeg-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Server 12 SP4 | libjpeg62-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | libjpeg-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | libjpeg62-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | libjpeg-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | libjpeg62-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | libjpeg-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | libjpeg62-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | libjpeg-turbo | 0 | 1.5.3-31.14.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | libjpeg62-turbo | 0 | 1.5.3-31.14.2 |
| Ubuntu:16.04:LTS | libjpeg-turbo | 0 | 1.4.2-0ubuntu3.3 |
| Ubuntu:18.04:LTS | libjpeg-turbo | 0 | 1.5.2-0ubuntu5.18.04.3 |
| Ubuntu:20.04:LTS | libjpeg-turbo | 0 | 2.0.3-0ubuntu1 |
| Ubuntu:22.04:LTS | libjpeg-turbo | 0 | 2.1.2-0ubuntu1 |
| Ubuntu:Pro:14.04:LTS | libjpeg-turbo | 0 | 1.3.0-0ubuntu2.1+esm2 |
| Ubuntu:Pro:16.04:LTS | libjpeg-turbo | 0 | 1.4.2-0ubuntu3.4+esm1 |
| openSUSE:Leap 15.0 | libjpeg-turbo | 0 | 1.5.3-lp150.4.3.2 |
| openSUSE:Leap 15.0 | libjpeg62-turbo | 0 | 1.5.3-lp150.4.3.2 |
Related vulnerabilities
- CVE-2018-11212 An issue was discovered in libjpeg 9a and 9d. Also affects libjpeg-turbo
- CVE-2014-9092 libjpeg-turbo before 1.3.1 allows remote attackers to cause a denial of service (crash)… Also affects libjpeg-turbo
- CVE-2016-3616 The cjpeg utility in libjpeg allows remote attackers to cause a denial of service (NULL… Also affects libjpeg-turbo
- CVE-2026-92824 A flaw was found in libmodulemd. CWE-125
- CVE-2026-114038 A flaw was found in device-mapper-multipath. CWE-125
- CVE-2026-112896 Pillow is a Python imaging library. CWE-125
- CVE-2026-112278 rdesktop through 1.9.0 contains a heap out-of-bounds read vulnerability in… CWE-125
- CVE-2026-112273 libtins through 4.6 contains a heap out-of-bounds read vulnerability in DNS::compose_name… CWE-125