CVE-2021-32547
Medium · 5.5CVSS
5.5
EPSS
0.3%
Published
Jun 12, 2021
CISA due date
—
Cloudanix analysis
A local user on certain Ubuntu computers could read private files belonging to other users by tricking a diagnostic tool into following shortcuts.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
read_file() in apport/hookutils.py follows symbolic links and opens FIFOs, allowing local exposure of arbitrary file contents when invoked by openjdk-lts apport hooks.
Why it matters to the business
Local users on affected Ubuntu systems can read files they should not access, increasing risk of credential or configuration data leakage with moderate urgency given the flaw's age and lack of observed exploitation.
How an attack unfolds
An attacker on the same system creates a symbolic link or FIFO that points to a target file containing private data, then triggers the openjdk-lts apport hook so that read_file() dereferences the link and returns the contents.
How to fix it
Upgrade the apport and openjdk-lts packages to patched versions that replace or guard read_file() against symlink and FIFO traversal; apply all subsequent Ubuntu security updates.
How to confirm the fix worked
Confirm the installed apport package contains the symlink/FIFO hardening fix in hookutils.py and test that read_file() no longer follows links when invoked by the openjdk-lts hook.
Typical attack path
- Create symlink or FIFO in a location readable by the apport hook process
- Point the link at a target file containing private data
- Trigger the openjdk-lts apport hook that calls read_file()
- Read the returned file contents from hook output or logs
How to detect it
Review system logs for unexpected apport hook executions, unusual symlink creation in crash directories, and any hook output containing paths outside expected package directories.
What your security team should do
- Prioritize patching apport and openjdk-lts on all Ubuntu systems within the next maintenance window
- Audit local user access to /var/crash and apport hook directories
- Monitor for new CVEs in apport hook utilities and subscribe to Ubuntu security notices
The record
It was discovered that read_file() in apport/hookutils.py would follow symbolic links or open FIFOs. When this function is used by the openjdk-lts package apport hooks, it could expose private data to other local users.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Ubuntu:18.04:LTS | apport | 0 | 2.20.9-0ubuntu7.24 |
| Ubuntu:20.04:LTS | apport | 0 | 2.20.11-0ubuntu27.18 |
| Ubuntu:Pro:14.04:LTS | apport | 0 | 2.14.1-0ubuntu3.29+esm7 |
| Ubuntu:Pro:16.04:LTS | apport | 0 | 2.20.1-0ubuntu2.30+esm1 |
Related vulnerabilities
- CVE-2022-28657 Apport does not disable python crash handler before entering chroot Also affects apport
- CVE-2022-28656 is_closing_session() allows users to consume RAM in the Apport process Also affects apport
- CVE-2022-28658 Apport argument parsing mishandles filename splitting on older kernels resulting in… Also affects apport
- CVE-2022-28652 ~/.config/apport/settings parsing is vulnerable to "billion laughs" attack Also affects apport
- CVE-2022-28655 is_closing_session() allows users to create arbitrary tcp dbus connections Also affects apport
- CVE-2022-28654 is_closing_session() allows users to fill up apport.log Also affects apport
- CVE-2022-1242 Apport can be tricked into connecting to arbitrary sockets as the root user Also affects apport
- CVE-2021-3899 There is a race condition in the 'replaced executable' detection that, with the correct… Also affects apport