CVE-2020-15704
Medium · 5.5CVSS
5.5
EPSS
0.4%
Published
Sep 1, 2020
CISA due date
—
Cloudanix analysis
A local user on certain Ubuntu systems could trick the software into showing them private files that only the administrator should see.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The modprobe child process handling in the load_ppp_generic_if_needed patch fails to sanitize the MODPROBE_OPTIONS environment variable, allowing a local attacker to supply options that cause module loading to read and expose contents of arbitrary root-owned files.
Why it matters to the business
Local attackers on affected Ubuntu systems can access sensitive configuration and credential files owned by root, increasing risk of credential theft, lateral movement, or further privilege escalation without requiring network access.
How an attack unfolds
An attacker with local non-root access sets the MODPROBE_OPTIONS environment variable to malicious values, then triggers ppp-related module loading through normal system operations; the flawed child process follows the attacker-controlled options to read and return contents of chosen root files.
How to fix it
Upgrade the ppp package to one of the fixed versions: 2.4.5-5ubuntu1.4, 2.4.5-5.1ubuntu2.3+esm2, 2.4.7-1+2ubuntu1.16.04.3, 2.4.7-2+2ubuntu1.3, 2.4.7-2+4.1ubuntu5.1, or 2.4.7-2+4.1ubuntu6 depending on the Ubuntu release in use.
How to confirm the fix worked
Verify the installed ppp package version against the fixed releases listed for the specific Ubuntu series; confirm absence of the vulnerable load_ppp_generic_if_needed patch logic in /usr/share or debian/patches after upgrade.
Typical attack path
- Obtain local non-root shell on an affected Ubuntu system
- Export MODPROBE_OPTIONS with values that instruct modprobe to read a target root file
- Trigger the debian/patches/load_ppp_generic_if_needed logic to spawn the modprobe child
- Capture the resulting file contents returned by the module loading operation
How to detect it
Review authentication logs, user environment exports, and process creation events for invocations of modprobe or pppd with non-standard MODPROBE_OPTIONS values; look for unexpected file-read attempts originating from the ppp module loading path.
What your security team should do
- Prioritize patching all Ubuntu systems running affected ppp versions within the next maintenance window
- Restrict local user environments from setting MODPROBE_OPTIONS via shell profiles or sudoers where feasible
- Audit local accounts for unusual environment variable usage in authentication or cron logs
The record
The modprobe child process in the ./debian/patches/load_ppp_generic_if_needed patch file incorrectly handled module loading. A local non-root attacker could exploit the MODPROBE_OPTIONS environment variable to read arbitrary root files. Fixed in 2.4.5-5ubuntu1.4, 2.4.5-5.1ubuntu2.3+esm2, 2.4.7-1+2ubuntu1.16.04.3, 2.4.7-2+2ubuntu1.3, 2.4.7-2+4.1ubuntu5.1, 2.4.7-2+4.1ubuntu6. Was ZDI-CAN-11504.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Ubuntu:14.04:LTS | ppp | 0 | 2.4.5-5.1ubuntu2.3+esm2 |
| Ubuntu:16.04:LTS | ppp | 0 | 2.4.7-1+2ubuntu1.16.04.3 |
| Ubuntu:18.04:LTS | ppp | 0 | 2.4.7-2+2ubuntu1.3 |
| Ubuntu:20.04:LTS | ppp | 0 | 2.4.7-2+4.1ubuntu5.1 |
| Ubuntu:Pro:14.04:LTS | ppp | 0 | 2.4.5-5.1ubuntu2.3+esm2 |
Related vulnerabilities
- CVE-2015-3310 Buffer overflow in the rc_mksid function in plugins/radius/util.c in Paul's PPP Package… Also affects ppp
- CVE-2014-3158 Integer overflow in the getword function in options.c in pppd in Paul's PPP Package (ppp)… Also affects ppp
- CVE-2026-113786 pypdf is a free and open-source pure-python PDF library. CWE-20
- CVE-2026-112081 A vulnerability was determined in hankcs HanLP up to 2.1.0-beta.64. CWE-20
- CVE-2026-111869 A vulnerability was identified in makeplane plane up to 1.4.2. CWE-20
- CVE-2026-100347 kin-openapi is a Go project for handling OpenAPI files. CWE-20
- CVE-2026-99999 In the Linux kernel, the following vulnerability has been resolved: ipv4: validate… CWE-20
- CVE-2026-107726 Hazelcast is a unified real-time data platform combining stream processing with a fast… CWE-20