CVE-2019-2228
Medium · 5.5CVSS
5.5
EPSS
0.2%
Published
Dec 6, 2019
CISA due date
—
Cloudanix analysis
A problem in Android's printing system could let someone with access to a phone or tablet read private information without the owner knowing.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds read in array_find of array.c caused by incorrect bounds checking that allows reading memory beyond allocated arrays inside the printer spooler process.
Why it matters to the business
Attackers with local access on affected Android devices can obtain sensitive information such as print jobs or system data without requiring additional privileges or user interaction, increasing exposure of confidential content on large device fleets.
How an attack unfolds
An attacker with local shell or app execution on a vulnerable Android device crafts input that triggers array_find with malformed bounds, causing the spooler to read and return out-of-bounds memory containing printer-related data or other process information.
How to fix it
Update affected Android devices to patched releases beyond Android-10 that contain the fix for the array bounds issue; apply vendor security patches as they become available and disable unnecessary printing services where possible.
How to confirm the fix worked
Confirm devices are running versions newer than those listed in the advisory; test by attempting to reproduce the array_find call with boundary inputs and verify no out-of-bounds reads occur in logs or memory dumps.
Typical attack path
- Obtain local execution context on target Android device (app or ADB).
- Interact with the printer spooler service using crafted print or array operations.
- Trigger the incorrect bounds check in array_find to perform out-of-bounds read.
- Capture disclosed memory contents containing sensitive printer or system data.
How to detect it
Review Android system logs and printer spooler process activity for unexpected memory access patterns or crashes around array operations; monitor for local privilege abuse targeting the spooler service.
What your security team should do
- Prioritize patching all Android devices to the latest vendor-provided releases.
- Audit device inventory for remaining Android-8.0 through Android-10 instances.
- Restrict local access and printing capabilities on high-risk endpoints until updated.
The record
In array_find of array.c, there is a possible out-of-bounds read due to an incorrect bounds check. This could lead to local information disclosure in the printer spooler with no additional execution privileges needed. User interaction is not needed for exploitation.Product: AndroidVersions: Android-8.0 Android-8.1 Android-9 Android-10Android ID: A-111210196
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | cups | 0 | 2.3.1-1 |
| Debian:12 | cups | 0 | 2.3.1-1 |
| Debian:13 | cups | 0 | 2.3.1-1 |
| Debian:8 | cups | 0 | 1.7.5-11+deb8u7 |
| Mageia:7 | cups | 0 | 2.2.13-1.2.mga7 |
| Ubuntu:16.04:LTS | cups | 0 | 2.1.3-4ubuntu0.11 |
| Ubuntu:18.04:LTS | cups | 0 | 2.2.7-1ubuntu2.8 |
| Ubuntu:20.04:LTS | cups | 0 | 2.3.1-4 |
| Ubuntu:20.04:LTS | cups | 0 | 2.3.1-9ubuntu1.1 |
| openSUSE:Tumbleweed | cups | 0 | 2.3.3op2-4.2 |
Related vulnerabilities
- CVE-2024-47176 CUPS is a standards-based, open-source printing system, and `cups-browsed` contains… Also affects cups
- CVE-2024-47076 CUPS is a standards-based, open-source printing system, and `libcupsfilters` contains the… Also affects cups
- CVE-2024-47175 CUPS is a standards-based, open-source printing system, and `libppd` can be used for… Also affects cups
- CVE-2024-47177 CUPS is a standards-based, open-source printing system, and cups-filters provides… Also affects cups
- CVE-2023-32360 An authentication issue was addressed with improved state management. Also affects cups
- CVE-2015-3258 Heap-based buffer overflow in the WriteProlog function in filter/texttopdf.c in texttopdf… Also affects cups
- CVE-2015-1158 The add_job function in scheduler/ipp.c in cupsd in CUPS before 2.0.3 performs incorrect… Also affects cups
- CVE-2014-9679 Integer underflow in the cupsRasterReadPixels function in filter/raster.c in CUPS before… Also affects cups