CVE-2022-28654
Medium · 5.5CVSS
5.5
EPSS
0.3%
Published
Jun 4, 2024
CISA due date
—
Cloudanix analysis
Regular users can keep adding entries to a system log file until it fills the entire hard drive and stops the application from running.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
The is_closing_session() function permits authenticated local users to trigger repeated log writes that unboundedly grow apport.log until disk exhaustion occurs.
Why it matters to the business
Low-privilege users can exhaust disk space on GitLab servers, causing service outages, degraded performance, and unplanned operational recovery work; prevalence across many GitLab instances increases exposure.
How an attack unfolds
An authenticated local attacker repeatedly invokes is_closing_session() to force excessive logging entries into apport.log; over time the file consumes all available disk space and halts GitLab services. No public exploit code or threat actors are known.
How to fix it
Upgrade GitLab to the version containing commit 67af793e55bd098111d3c3e265cd2c92eb283f1c; limit log file sizes via OS-level logrotate or similar controls until patches are applied.
How to confirm the fix worked
Confirm the running GitLab binary or source tree includes commit 67af793e55bd098111d3c3e265cd2c92eb283f1c; attempt controlled invocation of is_closing_session() while monitoring apport.log size to verify no unbounded growth occurs.
Typical attack path
- Obtain a low-privileged local account on a GitLab host
- Repeatedly call is_closing_session() in a loop or script
- Observe apport.log growth until disk space is exhausted and services fail
How to detect it
Search GitLab and system logs for unusually high volumes of entries containing is_closing_session references; monitor for rapid, sustained growth of apport.log outside normal crash-reporting patterns.
- apport.log
- is_closing_session()
What your security team should do
- Apply the fixed commit 67af793e55bd098111d3c3e265cd2c92eb283f1c to all GitLab instances without delay
- Enable or tighten log rotation for apport.log and other service logs
- Monitor disk utilization alerts on GitLab hosts and review local user activity for anomalous function calls
The record
is_closing_session() allows users to fill up apport.log
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-28655 is_closing_session() allows users to create arbitrary tcp dbus connections 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