CVE-2017-6964
High · 7.8CVSS
7.8
EPSS
0.5%
Published
Mar 28, 2017
CISA due date
—
Cloudanix analysis
A disk-handling program on older Linux computers can let an ordinary user gain complete control of the machine.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- Application
- Class
- Privilege Escalation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw causes dmcrypt-get-device to skip dropping privileges when setuid or setgid return failure, allowing code that should run unprivileged to execute with root rights.
Why it matters to the business
Local attackers can obtain full administrative control of affected Linux systems, risking data theft, service disruption, or persistent unauthorized access on servers and workstations still running old eject packages.
How an attack unfolds
An authenticated local user invokes dmcrypt-get-device; because the script does not verify that setuid and setgid succeeded, subsequent operations run with root privileges instead of the caller's unprivileged context.
How to fix it
Upgrade the eject package to a fixed release on each distribution (Debian after 2.1.5+deb1+cvs20081104-13.1, Ubuntu 16.10 after 2.1.5+deb1+cvs20081104-13.1ubuntu0.16.10.1, Ubuntu 16.04 after 2.1.5+deb1+cvs20081104-13.1ubuntu0.16.04.1, Ubuntu 14.04 after 2.1.5+deb1+cvs20081104-13.1ubuntu0.14.04.1, Ubuntu 12.04 after 2.1.5+deb1+cvs20081104-9ubuntu0.1) and restart any dependent services.
How to confirm the fix worked
Confirm the installed eject package version is newer than the listed vulnerable releases, then run the binary under a non-root account and verify that setuid/setgid failures cause immediate exit rather than continued root execution.
Typical attack path
- Obtain a local shell on the target system
- Locate and execute dmcrypt-get-device
- Trigger the unchecked setuid/setgid path to retain root rights
- Perform privileged actions such as installing backdoors or exfiltrating data
How to detect it
Search authentication and process execution logs for invocations of dmcrypt-get-device or eject binaries that result in root-owned child processes; correlate with unexpected root shells or setuid binaries appearing after local user activity.
- dmcrypt-get-device
- eject[0-9a-f]*: setuid failed
What your security team should do
- Patch eject on all Debian and Ubuntu systems to the fixed package versions
- Inventory hosts still running eject <= 2.1.5+deb1+cvs20081104-13.1 and prioritize them for remediation
- Remove or restrict local accounts that do not require the eject utility
The record
dmcrypt-get-device, as shipped in the eject package of Debian and Ubuntu, does not check the return value of the (1) setuid or (2) setgid function, which might cause dmcrypt-get-device to execute code, which was intended to run as an unprivileged user, as root. This affects eject through 2.1.5+deb1+cvs20081104-13.1 on Debian, eject before 2.1.5+deb1+cvs20081104-13.1ubuntu0.16.10.1 on Ubuntu 16.10, eject before 2.1.5+deb1+cvs20081104-13.1ubuntu0.16.04.1 on Ubuntu 16.04 LTS, eject before 2.1.5+deb1+cvs20081104-13.1ubuntu0.14.04.1 on Ubuntu 14.04 LTS, and eject before 2.1.5+deb1+cvs20081104-9ubuntu0.1 on Ubuntu 12.04 LTS.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:7 | eject | 0 | 2.1.5+deb1+cvs20081104-13+deb7u1 |
| Debian:8 | eject | 0 | 2.1.5+deb1+cvs20081104-13.1+deb8u1 |
| Ubuntu:14.04:LTS | eject | 0 | 2.1.5+deb1+cvs20081104-13.1ubuntu0.14.04.1 |
| Ubuntu:16.04:LTS | eject | 0 | 2.1.5+deb1+cvs20081104-13.1ubuntu0.16.04.1 |
Related vulnerabilities
- CVE-2026-111497 A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli… CWE-252
- CVE-2026-110353 HAProxy 3.2 before 3.4.6 allows a remote unauthenticated attacker to cause a denial of… CWE-252
- CVE-2026-106436 The BSON encoder in the MongoDB PHP Driver does not check some return values after a… CWE-252
- CVE-2026-86141 xmlregexp in libxml2 before 2.15.4 has a NULL pointer dereference in xmlRegNewParserCtxt… CWE-252
- CVE-2026-19534 undici's WebSocket client crashes the whole Node.js process during the opening handshake… CWE-252
- CVE-2026-85649 (Holloway) Chew, Kean Ho's Actualizer v1.2.0 and earlier contains a fail-open password… CWE-252
- CVE-2026-14957 In FIPS mode, Libreswan's add_decoded_cert() function calls CERT_ExtractPublicKey() and… CWE-252
- CVE-2026-78699 Unchecked Return Value vulnerability in ash-project ash_postgres allows a user who can… CWE-252