CVE-2022-28655
High · 7.1CVSS
7.1
EPSS
0.2%
Published
Jun 4, 2024
CISA due date
—
Cloudanix analysis
A bug in the Ubuntu error-reporting tool lets people already on the computer reach internal system services they should not be able to touch.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Application
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The is_closing_session() function in apport permits local users to instantiate arbitrary TCP DBus connections, bypassing intended local authorization restrictions on DBus access.
Why it matters to the business
Local attackers on affected Ubuntu systems can interact with DBus services in ways that should be blocked, potentially leading to unauthorized configuration changes, service manipulation, or further privilege escalation with resulting system instability or data exposure.
How an attack unfolds
An attacker with a local shell invokes the vulnerable is_closing_session() entry point to open a TCP DBus connection to a target service, then issues method calls or signals that the service would normally reject from an untrusted local user.
How to fix it
Upgrade the apport package to the latest available version from the distribution that contains the corrected is_closing_session() implementation; apply all pending Ubuntu security updates and monitor apport release announcements for backports.
How to confirm the fix worked
Confirm the installed apport package version is newer than the vulnerable release, review the source for the patched is_closing_session() logic, and test that local users can no longer create unauthorized TCP DBus connections.
Typical attack path
- Obtain local shell access on an affected system
- Execute code or commands that call is_closing_session()
- Establish an arbitrary TCP DBus connection
- Interact with restricted DBus services to alter system state
How to detect it
Review system and apport logs for unexpected DBus TCP connection attempts originating from user processes; correlate with process creation events around the time of the vulnerable function invocation.
What your security team should do
- Prioritize patching apport on all Ubuntu systems within the next maintenance window
- Audit local user accounts and restrict unnecessary DBus access where possible
- Enable enhanced logging for DBus connections to detect anomalous TCP sessions
The record
is_closing_session() allows users to create arbitrary tcp dbus connections
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Ubuntu:18.04:LTS | apport | 0 | 2.20.9-0ubuntu7.28 |
| Ubuntu:20.04:LTS | apport | 0 | 2.20.11-0ubuntu27.24 |
| Ubuntu:22.04:LTS | apport | 0 | 2.20.11-0ubuntu82.1 |
| Ubuntu:Pro:14.04:LTS | apport | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | apport | 0 | 2.20.1-0ubuntu2.30+esm4 |
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-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
- CVE-2021-3709 Function check_attachment_for_errors() in file data/general-hooks/ubuntu.py could be… Also affects apport