Apport 2.21.0

Milestone information

Project:
Apport
Series:
main
Version:
2.21.0
Released:
 
Registrant:
Benjamin Drung
Release registered:
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
1 Benjamin Drung, 1 Julian Andres Klode
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
26 Fix Released

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon apport-2.21.0.tar.xz (md5, sig) apport-2.21.0.tar.xz 13
last downloaded 86 weeks ago
Total downloads: 13

Release notes 

* SECURITY UPDATE: TOCTOU issue allows local user to read arbitrary
  files (LP: #1830858)
  - apport/report.py: Avoid TOCTOU issue on users ignore file by
    dropping privileges and then opening the file both test for access and
    open the file in a single operation, instead of using access() before
    reading the file which could be abused by a symlink to cause Apport to
    read and embed an arbitrary file in the resulting crash dump.
  - CVE-2019-7307
* SECURITY UPDATE: apport reads arbitrary files if ~/.config/apport/settings
  is a symlink (LP: #1830862)
  - apport/fileutils.py: drop permissions before reading user settings file.
  - CVE-2019-11481
* SECURITY UPDATE: TOCTTOU race conditions and following symbolic
  links when creating a core file (LP: #1839413)
  - data/apport: use file descriptor to reference to cwd instead
    of strings.
  - CVE-2019-11482
* SECURITY UPDATE: fully user controllable lock file due to lock file
  being located in world-writable directory (LP: #1839415)
  - data/apport: create and use lock file from /var/lock/apport.
  - CVE-2019-11485
* SECURITY UPDATE: per-process user controllable Apport socket file
  (LP: #1839420)
  - data/apport: forward crashes only under a valid uid and gid,
    thanks Stéphane Graber for the patch.
  - CVE-2019-11483
* SECURITY UPDATE: PID recycling enables an unprivileged user to
  generate and read a crash report for a privileged process (LP: #1839795)
  - data/apport: drop permissions before adding proc info (special thanks
    to Kevin Backhouse for the patch)
  - data/apport, apport/report.py, apport/ui.py: only access or open
    /proc/[pid] through a file descriptor for that directory.
  - CVE-2019-15790
* SECURITY REGRESSION: 'module' object has no attribute 'O_PATH'
  (LP: #1851806)
  - apport/report.py, apport/ui.py: use file descriptors for /proc/pid
    directory access only when running under python 3; prevent reading /proc
    maps under python 2 as it does not provide a secure way to do so; use
    io.open for better compatibility between python 2 and 3.
* SECURITY UPDATE: World writable root owned lock file created in user
  controllable location (LP: #1862348)
  - data/apport: Change location of lock file to be directly under
    /var/run so that regular users can not directly access it or perform
    symlink attacks.
  - CVE-2020-8831
* SECURITY UPDATE: Race condition between report creation and ownership
  (LP: #1862933)
  - data/apport: When setting owner of report file use a file-descriptor
    to the report file instead of its path name to ensure that users can
    not cause Apport to change the ownership of other files via a
    symlink attack.
  - CVE-2020-8833
* SECURITY UPDATE: information disclosure issue (LP: #1885633)
  - data/apport: also drop gid when checking if user session is closing.
  - CVE-2020-11936
* SECURITY UPDATE: crash via malformed ignore file (LP: #1877023)
  - apport/report.py: don't crash on malformed mtime values.
  - CVE-2020-15701
* SECURITY UPDATE: TOCTOU in core file location
  - data/apport: make sure the process hasn't been replaced after Apport
    has started.
  - CVE-2020-15702
* SECURITY UPDATE: multiple security issues (LP: #1912326)
  - CVE-2021-25682: error parsing /proc/pid/status
  - CVE-2021-25683: error parsing /proc/pid/stat
  - CVE-2021-25684: stuck reading fifo
  - data/apport: make sure existing report is a regular file.
  - apport/fileutils.py: move some logic here to skip over manipulated
    process names and filenames.
  - test/test_fileutils.py: added some parsing tests.
* SECURITY UPDATE: Multiple arbitrary file reads (LP: #1917904)
  - apport/hookutils.py: don't follow symlinks and make sure the file
    isn't a FIFO in read_file().
  - test/test_hookutils.py: added symlink tests.
  - CVE-2021-32547, CVE-2021-32548, CVE-2021-32549, CVE-2021-32550,
    CVE-2021-32551, CVE-2021-32552, CVE-2021-32553, CVE-2021-32554,
    CVE-2021-32555
* SECURITY UPDATE: info disclosure via modified config files spoofing
  (LP: #1917904)
  - backends/packaging-apt-dpkg.py: properly terminate arguments in
    get_modified_conffiles.
  - CVE-2021-32556
* SECURITY UPDATE: arbitrary file write (LP: #1917904)
  - data/whoopsie-upload-all: don't follow symlinks and make sure the
    file isn't a FIFO in process_report().
  - CVE-2021-32557
* SECURITY UPDATE: Arbitrary file read (LP: #1934308)
  - data/general-hooks/ubuntu.py: don't attempt to include emacs
    byte-compilation logs, they haven't been generated by the emacs
    packages in a long time.
  - CVE-2021-3709
* SECURITY UPDATE: Info disclosure via path traversal (LP: #1933832)
  - apport/hookutils.py, test/test_hookutils.py: detect path traversal
    attacks, and directory symlinks.
  - CVE-2021-3710
* SECURITY UPDATE: Privilege escalation via core files
  - refactor privilege dropping and create core files in a well-known
    directory in apport/fileutils.py, apport/report.py, data/apport,
    test/test_fileutils.py, test/test_report.py,
    test/test_signal_crashes.py, test/test_ui.py.
  - use systemd-tmpfiles to create and manage the well-known core file
    directory in setup.py, data/systemd/apport.conf.
* backends/packaging-apt-dpkg.py: Utilize a release and architecture specific
  contents mapping.
* test/test_backend_apt_dpkg.py: Update the test as we are using a contents
  mapping.
* test/test_report.py: remove unused import of gzip.
* apport/ui.py: Write an UnreportableReason for snaps and provide information
  on how to contact a snap developer. (LP: #1729491)
* problem_report.py, bin/apport-unpack: restore some python2 code because the
  Error Tracker retracers need it.
* backends/packaging-apt-dpkg.py: add in /usr/games and /usr/libexec as paths
  for executables in the contents mapping.
* apport/ui.py: When saving a report for later processing if the filename
  to save it to ends with .gz then gzip the report file. Thanks to Yuan-Chen
  Cheng for the patch. (LP: #1837174)
* Catch zlib.error when decoding CoreDump from crash file (LP: #1947800)
* whoopsie-upload-all: Catch FileNotFoundError during process_report
  (LP: #1867204)
* Drop Python 2 support
* Grab a slice of JournalErrors around the crash time (LP: #1962454)
* Fix several race conditions in test cases
* Make test cases more robust against running in specific environments
* Split the test suite into unit, integration, and system tests

Changelog 

This release does not have a changelog.

0 blueprints and 26 bugs targeted

Bug report Importance Assignee Status
1830858 #1830858 TOCTOU vulnerability in _get_ignore_dom (report.py) 2 Critical   10 Fix Released
1830862 #1830862 Apport reads arbitrary files if ~/.config/apport/settings is a symlink 2 Critical   10 Fix Released
1839795 #1839795 PID recycling enables an unprivileged user to generate and read a crash report for a privileged process 2 Critical   10 Fix Released
1862348 #1862348 Apport lock file root privilege escalation 2 Critical   10 Fix Released
1862933 #1862933 Apport crash report & cron script TOCTTOU 2 Critical   10 Fix Released
1876659 #1876659 Unhandled exception in run_hang() 2 Critical   10 Fix Released
1877023 #1877023 Unhandled exception in check_ignored() 2 Critical   10 Fix Released
1912326 #1912326 Privilege escalation to root with core file dump 2 Critical   10 Fix Released
1917904 #1917904 Arbitrary file reads 2 Critical   10 Fix Released
1933832 #1933832 Path traversal leads to arbitrary file read 2 Critical   10 Fix Released
1934308 #1934308 Arbitrary file read in general hook (ubuntu.py) 2 Critical   10 Fix Released
1948376 #1948376 race condition in apport lead to Local Privilege Escalation 2 Critical   10 Fix Released
1839413 #1839413 TOCTTOU ("time of check to time of use") "cwd" variable race condition 3 High   10 Fix Released
1839420 #1839420 Per-process user controllable Apport socket file 3 High   10 Fix Released
1851806 #1851806 'module' object has no attribute 'O_PATH' 3 High   10 Fix Released
1867204 #1867204 /usr/share/apport/whoopsie-upload-all:FileNotFoundError:/usr/share/apport/whoopsie-upload-all@170:collect_info:process_report 3 High   10 Fix Released
1947800 #1947800 /usr/share/apport/whoopsie-upload-all:zlib.error:/usr/share/apport/whoopsie-upload-all@196:collect_info:process_report:add_gdb_info:gdb_command:write:read:readinto:read 3 High   10 Fix Released
1965830 #1965830 apport-kde crashed with setGeometry(self, int, int, int, int) in ui_start_info_collection_progress(): argument 1 has unexpected type 'float' 3 High   10 Fix Released
1729491 #1729491 [UIFe] ubuntu-bug says that snap packages are not installed 4 Medium   10 Fix Released
1885633 #1885633 [ZDI-CAN-11233]: apport Unnecessary Privileges Information Disclosure Vulnerability 4 Medium   10 Fix Released
1888352 #1888352 use builtin dump_acpi_tables.py in hookutils 4 Medium   10 Fix Released
1962454 #1962454 Oops pages show wrong time window in JournalErrors 4 Medium Benjamin Drung  10 Fix Released
1732962 #1732962 apport uses sys.argv instead of named arguments 5 Low Julian Andres Klode  10 Fix Released
1780767 #1780767 Some GTK UI tests are flaky due to timeout 5 Low   10 Fix Released
1837174 #1837174 auto compress if save filename ends with .gz 5 Low   10 Fix Released
1839415 #1839415 Fully user controllable lock file due to lock file being located in world-writable directory 5 Low   10 Fix Released
This milestone contains Public information
Everyone can see this information.