title: Apport treats the container PID as the global PID when /proc/<global_pid>/  is missing
description: Apport does not properly handle crashes originating from a PID namespace allowing local users to create certain files as root which an attacker could leverage to perform a denial of service via resource exhaustion, possibly gain root privileges, or escape from containers. The is_same_ns() function returns True when /proc/<global pid>/ does not exist in order to indicate that the crash should be handled in the global namespace rather than inside of a container. However, the portion of the data/apport code that decides whether or not to forward a crash to a container does not always replace sys.argv[1] with the value stored in the host_pid variable when /proc/<global pid>/ does not exist which results in the container pid being used in the global namespace. This flaw affects versions 2.20.8-0ubuntu4 through 2.20.9-0ubuntu7, 2.20.7-0ubuntu3.7, 2.20.7-0ubuntu3.8, 2.20.1-0ubuntu2.15 through 2.20.1-0ubuntu2.17, and 2.14.1-0ubuntu3.28.
problem types: Denial of service via resource exhaustion, privilege escalation, and escape from containers
affected:
{
platforms: Ubuntu 18.04
product: Apport
vendor: n/a
versions:
lessThan: unspecified, status: affected, version: 2.20.8-0ubuntu4, versionType: custom
lessThan: 2.20.9-0ubuntu7.1, status: affected, version: unspecified, versionType: custom
}
{
platforms: Ubuntu 16.04
product: Apport
vendor: n/a
versions:
lessThan: unspecified, status: affected, version: 2.20.1-0ubuntu2.15, versionType: custom
lessThan: 2.20.1-0ubuntu2.18, status: affected, version: unspecified, versionType: custom
}
{
platforms: Ubuntu 17.10
product: Apport
vendor: n/a
versions:
lessThan: unspecified, status: affected, version: 2.20.7-0ubuntu3.7, versionType: custom
lessThan: 2.20.7-0ubuntu3.9, status: affected, version: unspecified, versionType: custom
}
{
platforms: Ubuntu 14.04
product: Apport
vendor: n/a
versions:
status: affected, version: 2.14.1-0ubuntu3.28
}
