Cloudanix VulnDB

CVE-2020-15704

Medium · 5.5

CVSS

5.5

EPSS

0.4%

Published

Sep 1, 2020

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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

  1. Obtain local non-root shell on an affected Ubuntu system
  2. Export MODPROBE_OPTIONS with values that instruct modprobe to read a target root file
  3. Trigger the debian/patches/load_ppp_generic_if_needed logic to spawn the modprobe child
  4. 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