Headline
CVE-2020-15701: Bug #1877023 “Unhandled exception in check_ignored()” : Bugs : apport package : Ubuntu
An unhandled exception in check_ignored() in apport/report.py can be exploited by a local attacker to cause a denial of service. If the mtime attribute is a string value in apport-ignore.xml, it will trigger an unhandled exception, resulting in a crash. Fixed in 2.20.1-0ubuntu2.24, 2.20.9-0ubuntu7.16, 2.20.11-0ubuntu27.6.
Hi,
I have found a security issue on apport 2.20.11 and earlier.
## Vulnerability
apport 2.20.11 and earlier have an unhandled exception vulnerability during parsing apport-ignore.xml.
An attacker can cause a denial of service (i.e., application crash) via a crafted apport-ignore.xml file.
## Description
Reports can be suppressed by blacklisting in apport-ignore.xml.
This is an example of apport-ignore.xml
<?xml version="1.0" ?>
<apport>
<ignore mtime="1461374304" program="/opt/sublime_text/sublime_text"/>
<ignore mtime="1453471676" program="/bin/sleep"/>
<ignore mtime="1452699271" program="/usr/bin/strace"/>
</apport>
Unfortunately, it may cause an unhandled exception when ‘mtime’ attribute is specified as a string value, not a number like this.
<?xml version="1.0" ?>
<apport>
<ignore mtime="string" program="/bin/sleep"/>
</apport>
It may disrupt apport service and allow an attacker to potentially enable a denial of service via local access.
The flaw lies in improper exception handling of ‘mtime’ attribute in apport-ignore.xml (see https://git.launchpad.net/ubuntu/+source/apport/tree/apport/report.py?h=applied/ubuntu/devel#n1104).
## Log
Here is /var/log/apport.log when the above exception occurs.
ERROR: apport (pid 25904) Tue May 5 18:38:21 2020: Unhandled exception:
Traceback (most recent call last):
File "/usr/share/apport/apport", line 629, in <module>
if info.check_ignored():
File "/usr/lib/python3/dist-packages/apport/report.py", line 1082, in check_ignored
if float(ignore.getAttribute(‘mtime’)) >= cur_mtime:
ValueError: could not convert string to float: ‘string’
Sincerely,
Related news
TOCTOU Race Condition vulnerability in apport allows a local attacker to escalate privileges and execute arbitrary code. An attacker may exit the crashed process and exploit PID recycling to spawn a root process with the same PID as the crashed process, which can then be used to escalate privileges. Fixed in 2.20.1-0ubuntu2.24, 2.20.9 versions prior to 2.20.9-0ubuntu7.16 and 2.20.11 versions prior to 2.20.11-0ubuntu27.6. Was ZDI-CAN-11234.