What is libuser?
libuser is a Red Hat–developed C library that provides a standardized interface for reading and modifying the system account databases — chiefly /etc/passwd and /etc/shadow. It backs several setuid-root administrative helpers shipped on Red Hat Enterprise Linux, Fedora, and CentOS, most notably the userhelper/chfn/chsh tools in the usermode package. Because those helpers run with root privileges while acting on input supplied by unprivileged users, any flaw in how libuser serialises account records becomes a local privilege-escalation surface.
Overview
CVE-2015-3246 is one of two libuser flaws disclosed together by Qualys in its "Roots" advisory. The library modifies /etc/passwd in a way that is not atomic and does not adequately guard against a user-controlled entry corrupting the file. A local, authenticated user can leverage the resulting inconsistent state to cause a denial of service (a corrupted /etc/passwd can lock all users, including root, out of the system) and — when chained with the companion newline-injection flaw CVE-2015-3245 — to escalate to full root privileges.
Qualys demonstrated a working local root exploit ("roots") that combined CVE-2015-3245 and CVE-2015-3246 against a default Red Hat / CentOS install, which is why CISA has now added the pair-enabling flaw to the KEV catalog despite its modest standalone CVSS score.
Affected Versions
| Product | Affected | Fixed |
|---|---|---|
Red Hat / CentOS libuser (RHEL 6) |
before libuser-0.56.13-8.el6_7 | libuser-0.56.13-8.el6_7 |
Red Hat / CentOS libuser (RHEL 7) |
before libuser-0.60-7.el7_1.1 | libuser-0.60-7.el7_1.1 |
Fedora libuser |
before patched build | vendor-patched build |
The usermode package (userhelper, chfn, chsh) must be updated alongside libuser, because those setuid binaries are the exposed callers.
Technical Details
The root cause is improper handling of the account-database write (CWE-264, privilege management). libuser rewrites the entire /etc/passwd//etc/shadow file rather than editing a single field atomically, and it fails to reject entries that a lower-privileged caller has manipulated. A user who can influence a field written back through a setuid libuser consumer can cause the file to be written in a corrupted or attacker-influenced state. The high attack complexity (AC:H) reflects the race/timing element and the need to combine it with the CVE-2015-3245 newline injection to reach code execution rather than just denial of service.
Discovery
Both libuser vulnerabilities were discovered and responsibly disclosed by the Qualys Security Advisory team, published on 23 July 2015 as the "Roots" advisory, alongside a proof-of-concept local root exploit.
Exploitation Context
The Qualys advisory shipped with a reliable local-root proof of concept, and the flaw pair has been public for a decade, making exploit code trivially available. CISA's August 2026 KEV addition indicates evidence of active exploitation against unpatched, long-lived Red Hat / CentOS 6 and 7 systems — an environment where end-of-life hosts running the original libuser are still common. Exploitation requires an existing local account, so this is a post-compromise privilege-escalation primitive rather than an initial-access vector.
Remediation
- Patch libuser and usermode together to the fixed package versions above (
yum update libuser usermode). Updating only one leaves the exploit chain intact. - For end-of-life RHEL/CentOS 6 hosts, migrate to a supported distribution; no upstream fix is available for EoL releases.
- Restrict local account access on multi-user systems and audit who holds shell access, since exploitation requires a local login.
- Review
/etc/passwdand/etc/shadowintegrity (e.g. viapwck, file-integrity monitoring) on systems that may have been exposed, and watch for unexpected UID 0 entries. - Audit for local privilege-escalation indicators — new setuid files, unexpected root shells, and modifications to account databases outside change windows.
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2015-3246 |
| Vendor / Product | Red Hat — Libuser |
| NVD Published | 2015-08-11 |
| NVD Last Modified | 2026-08-27 |
| CVSS 3.1 Score | 5.1 |
| CVSS 3.1 Vector | CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H |
| Severity | MEDIUM |
| CWE | CWE-264 find similar ↗ |
| CISA KEV Added | 2026-08-26 |
| CISA KEV Deadline | 2026-09-09 |
| Known Ransomware Use | No |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2015-07-23 | Qualys publishes the "Roots" advisory disclosing CVE-2015-3245 and CVE-2015-3246 |
| 2015-08-11 | CVE-2015-3246 published in the NVD |
| 2026-08-26 | Added to CISA Known Exploited Vulnerabilities catalog |
| 2026-09-09 | CISA remediation deadline |
References
| Resource | Type |
|---|---|
| NVD — CVE-2015-3246 | Vulnerability Database |
| CISA KEV Catalog Entry | US Government |
| Red Hat Security Advisory — CVE-2015-3246 | Vendor Advisory |
| Qualys Security Advisory — "Roots": libuser Local Root (CVE-2015-3245, CVE-2015-3246) | Security Research |
| oss-security — libuser vulnerabilities disclosure | Mailing List |