Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
CISA KEV · ACTIVELY EXPLOITED

CVE-2015-3246

CVE-2015-3246 is a CWE-264 vulnerability. It is in CISA's Known Exploited Vulnerabilities catalog (added 2026-08-26) — treat it as actively exploited and patch now. O3 Security confirms whether CVE-2015-3246 is actually reachable in your code before you act, and blocks exploitation at runtime until you patch.

Published
Aug 11, 2015
Updated
Apr 16, 2026
Affected
0 pkgs
Patched
None yet
Exploits
4 known
Exploitation data as of Apr 16, 2026 · OSV.dev, NVD, CISA KEV, FIRST.org (EPSS)

Exploitation Status

Actively exploited in the wild

  • Confirmed by CISA's Known Exploited Vulnerabilities catalog on 2026-08-26. Federal agencies were required to remediate by 2026-09-09.

Exploitation and automatability from CISA (KEV catalog and SSVC triage) for CVE-2015-3246.

Description

libuser before 0.56.13-8 and 0.60 before 0.60-7, as used in the userhelper program in the usermode package, directly modifies /etc/passwd, which allows local users to cause a denial of service (inconsistent file state) by causing an error during the modification. NOTE: this issue can be combined with CVE-2015-3245 to gain privileges.

Exploits & PoCs
4

Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.

EDB-44633locallinux✓ Verified

Libuser - 'roothelper' Local Privilege Escalation (Metasploit)

by Metasploit · May 16, 2018

EDB-37706doslinux✓ Verified

Libuser Library - Multiple Vulnerabilities

by Qualys Corporation · Jul 27, 2015

Detection & mitigation playbook

Vulnerability
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for the affected component. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.

  2. Remediation status

    No patched version of the affected component has shipped for CVE-2015-3246 yet. Where your build allows, override or pin the dependency away from the vulnerable range, and apply any maintainer-recommended mitigation.

  3. Mitigate without a patch

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 pinpoints whether CVE-2015-3246 is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.

Tailored to CVE-2015-3246. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatImportant

This issue affects the versions of libuser as shipped with Red Hat Enterprise Linux 5. Red Hat Enterprise Linux 5 is now in Production 3 Phase of the support and maintenance life cycle. This vulnerability has been rated as having Important security impact and is not currently planned to be addressed in future updates.…

Frequently Asked Questions

libuser before 0.56.13-8 and 0.60 before 0.60-7, as used in the userhelper program in the usermode package, directly modifies /etc/passwd, which allows local users to cause a denial of service (inconsistent file state) by causing an error during the modification. NOTE: this issue can be combined with CVE-2015-3245 to gain privileges.
O3 Security · Impact-Aware SCA

Is CVE-2015-3246 in your dependencies?

O3 detects CVE-2015-3246 across dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.