CVE-2019-5188
Medium · 6.7CVSS
6.7
EPSS
1.1%
Published
Jan 8, 2020
CISA due date
—
Cloudanix analysis
A flaw in a common Linux disk-checking tool can let someone with full system access run their own code by feeding it a specially broken hard-drive partition.
- Exploitation
- Local Privilege
- Attacker needs
- High Privilege
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability is an out-of-bounds write on the stack in the directory rehashing functionality of e2fsck, triggered by a specially crafted ext4 directory entry, enabling arbitrary code execution.
Why it matters to the business
A local attacker with administrative access can corrupt an ext4 filesystem image to gain code execution on affected systems, potentially leading to full host compromise during filesystem checks or maintenance operations; the issue affects widely used storage tooling with no ransomware or broad exploitation observed.
How an attack unfolds
An attacker prepares a malicious ext4 partition containing a crafted directory structure, mounts or presents it to the target, and triggers e2fsck to process the directory rehashing code path, resulting in a stack-based write that redirects execution to attacker-controlled code.
How to fix it
Upgrade e2fsprogs to a version newer than 1.45.4; for the listed package, apply the fix at commit 311acbc4e7bd38fa3f3d0e158b35cde9ef73f8e5 or later equivalent release.
How to confirm the fix worked
Confirm e2fsprogs version is greater than 1.45.4, run e2fsck against known-good and test-crafted images to verify absence of the crash or write, and review package changelogs for the directory rehashing fixes.
Typical attack path
- Obtain local administrative privileges on the target system
- Craft or obtain a malicious ext4 filesystem image with a specially formatted directory
- Cause e2fsck to run against the corrupted partition (e.g., during boot, fsck, or manual invocation)
- Trigger the directory rehashing routine to perform the out-of-bounds stack write
- Execute arbitrary code in the context of the e2fsck process
How to detect it
Review system logs for unexpected e2fsck crashes or segmentation faults during filesystem checks, inspect audit logs for invocations of e2fsck on untrusted or newly introduced partitions, and look for post-exploitation artifacts such as modified binaries or unexpected processes spawned from fsck contexts.
What your security team should do
- Prioritize patching e2fsprogs on all systems that perform ext4 filesystem checks
- Restrict local administrative access to reduce the attack surface for local privilege-escalation paths
- Monitor filesystem integrity tools for unexpected crashes or high-privilege process anomalies
- Include e2fsprogs in regular vulnerability scanning and patch management workflows
The record
A code execution vulnerability exists in the directory rehashing functionality of E2fsprogs e2fsck 1.45.4. A specially crafted ext4 directory can cause an out-of-bounds write on the stack, resulting in code execution. An attacker can corrupt a partition to trigger this vulnerability.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.11 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.12 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.13 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.14 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.15 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.16 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.17 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.18 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.19 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.20 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.21 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.22 | e2fsprogs | 0 | 1.45.5-r0 |
| Alpine:v3.8 | e2fsprogs | 0 | 1.44.2-r2 |
| Alpine:v3.9 | e2fsprogs | 0 | 1.44.5-r2 |
| Debian:11 | e2fsprogs | 0 | 1.45.5-1 |
| Debian:12 | e2fsprogs | 0 | 1.45.5-1 |
| Debian:13 | e2fsprogs | 0 | 1.45.5-1 |
| Debian:8 | e2fsprogs | 0 | 1.42.12-2+deb8u2 |
| Debian:9 | e2fsprogs | 0 | 1.43.4-2+deb9u2 |
| Mageia:7 | e2fsprogs | 0 | 1.45.5-1.mga7 |
| Red Hat:enterprise_linux:7::client | e2fsprogs | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::client | e2fsprogs-debuginfo | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::client | e2fsprogs-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::client | e2fsprogs-libs | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::client | e2fsprogs-static | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::client | libcom_err | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::client | libcom_err-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::client | libss | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::client | libss-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | e2fsprogs | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | e2fsprogs-debuginfo | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | e2fsprogs-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | e2fsprogs-libs | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | e2fsprogs-static | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | libcom_err | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | libcom_err-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | libss | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::computenode | libss-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | e2fsprogs | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | e2fsprogs-debuginfo | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | e2fsprogs-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | e2fsprogs-libs | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | e2fsprogs-static | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | libcom_err | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | libcom_err-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | libss | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::server | libss-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | e2fsprogs | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | e2fsprogs-debuginfo | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | e2fsprogs-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | e2fsprogs-libs | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | e2fsprogs-static | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | libcom_err | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | libcom_err-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | libss | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:7::workstation | libss-devel | 0 | 0:1.42.9-19.el7 |
| Red Hat:enterprise_linux:8::baseos | e2fsprogs | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | e2fsprogs-debuginfo | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | e2fsprogs-debugsource | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | e2fsprogs-devel | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | e2fsprogs-libs | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | e2fsprogs-libs-debuginfo | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | libcom_err | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | libcom_err-debuginfo | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | libcom_err-devel | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | libss | 0 | 0:1.45.4-3.el8 |
| Red Hat:enterprise_linux:8::baseos | libss-debuginfo | 0 | 0:1.45.4-3.el8 |
| SUSE:Linux Enterprise Desktop 12 SP4 | e2fsprogs | 0 | 1.43.8-3.11.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 | e2fsprogs | 0 | 1.43.8-4.17.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP1 | e2fsprogs | 0 | 1.43.8-4.17.1 |
| SUSE:Linux Enterprise Server 12 SP4 | e2fsprogs | 0 | 1.43.8-3.11.1 |
| SUSE:Linux Enterprise Server 12 SP5 | e2fsprogs | 0 | 1.43.8-3.11.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | e2fsprogs | 0 | 1.43.8-3.11.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | e2fsprogs | 0 | 1.43.8-3.11.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | e2fsprogs | 0 | 1.43.8-3.11.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | e2fsprogs | 0 | 1.43.8-3.11.1 |
| Ubuntu:16.04:LTS | e2fsprogs | 0 | 1.42.13-1ubuntu1.2 |
| Ubuntu:18.04:LTS | e2fsprogs | 0 | 1.44.1-1ubuntu1.3 |
| Ubuntu:Pro:14.04:LTS | e2fsprogs | 0 | 1.42.9-3ubuntu1.3+esm2 |
| openSUSE:Leap 15.1 | e2fsprogs | 0 | 1.43.8-lp151.5.12.1 |
Related vulnerabilities
- CVE-2019-5094 An exploitable code execution vulnerability exists in the quota file functionality of… Also affects e2fsprogs
- CVE-2015-0247 Heap-based buffer overflow in openfs.c in the libext2fs library in e2fsprogs before… Also affects e2fsprogs
- CVE-2026-111497 A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli… CWE-787
- CVE-2026-112397 Pillow is a Python imaging library. CWE-787
- CVE-2026-112059 libLAS through 1.8.1 contains a heap out-of-bounds write vulnerability in the point… CWE-787
- CVE-2026-89088 A flaw was found in parted. CWE-787
- CVE-2026-89085 A flaw was found in parted. CWE-787
- CVE-2026-85746 MariaDB server is a community developed fork of MySQL server. CWE-787