CVE-2022-28656
Medium · 5.5CVSS
5.5
EPSS
0.2%
Published
Jun 4, 2024
CISA due date
—
Cloudanix analysis
A flaw in Ubuntu's automatic crash-reporting tool lets ordinary users on the same computer gradually use up all available memory, slowing or freezing the system.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A local user can invoke is_closing_session() to trigger unbounded memory allocations inside the Apport crash-reporting process, exhausting RAM and causing denial of service.
Why it matters to the business
Crash reporting becomes unavailable, complicating post-incident diagnostics on Ubuntu systems while high memory consumption may degrade overall host performance or trigger OOM kills of other services.
How an attack unfolds
A local attacker with a low-privileged account repeatedly calls the vulnerable function with crafted session data, causing the Apport daemon to allocate ever-increasing amounts of memory until the system is starved or the process is terminated.
How to fix it
Upgrade the apport package to the first patched release once published by Canonical; until then, apply systemd resource limits (MemoryMax) to the apport service and restrict local user access where feasible.
How to confirm the fix worked
Confirm the installed apport version contains the corrected is_closing_session() implementation; run memory-profiling tests that exercise session-closing paths and verify memory usage remains bounded.
Typical attack path
- Obtain a local shell as a non-root user
- Locate the running apport process
- Invoke is_closing_session() in a tight loop or with large inputs
- Observe progressive RAM consumption until service or host impact
How to detect it
Inspect system and apport logs for repeated session-closing activity; correlate with process accounting or cgroups memory metrics showing sustained high allocation by the apport daemon.
What your security team should do
- Prioritize patching apport once fixed packages are released
- Apply temporary MemoryMax limits via systemd to contain resource abuse
- Review local user permissions on systems running apport
- Monitor process memory metrics for anomalous growth
The record
is_closing_session() allows users to consume RAM in the Apport process
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-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
- CVE-2021-3709 Function check_attachment_for_errors() in file data/general-hooks/ubuntu.py could be… Also affects apport