Flatpak is a system for building, distributing, and running sandboxed desktop applications on Linux. In versions prior to 1.10.4 and 1.12.0, Flatpak apps with direct access to AF_UNIX sockets such as those used by Wayland, Pipewire or pipewire-pulse can trick portals and other host-OS services into treating the Flatpak app as though it was an ordinary, non-sandboxed host-OS process. They can do this by manipulating the VFS using recent mount-related syscalls that are not blocked by Flatpaks denylist seccomp filter, in order to substitute a crafted /.flatpak-info
or make that file disappear entirely. Flatpak apps that act as clients for AF_UNIX sockets such as those used by Wayland, Pipewire or pipewire-pulse can escalate the privileges that the corresponding services will believe the Flatpak app has. Note that protocols that operate entirely over the D-Bus session bus (user bus), system bus or accessibility bus are not affected by this. This is due to the use of a proxy process xdg-dbus-proxy
, whose VFS cannot be manipulated by the Flatpak app, when interacting with these buses. Patches exist for versions 1.10.4 and 1.12.0, and as of time of publication, a patch for version 1.8.2 is being planned. There are no workarounds aside from upgrading to a patched version.
The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Flatpak | Flatpak | * | 1.8.2 (excluding) |
Flatpak | Flatpak | 1.10.0 (including) | 1.10.4 (excluding) |
Flatpak | Flatpak | 1.11.1 (including) | 1.12.1 (excluding) |
Red Hat Enterprise Linux 7 | RedHat | flatpak-0:1.0.9-12.el7_9 | * |
Red Hat Enterprise Linux 8 | RedHat | flatpak-0:1.8.5-4.el8_4 | * |
Red Hat Enterprise Linux 8.1 Extended Update Support | RedHat | flatpak-0:1.0.9-5.el8_1 | * |
Red Hat Enterprise Linux 8.2 Extended Update Support | RedHat | flatpak-0:1.6.2-6.el8_2 | * |
Flatpak | Ubuntu | bionic | * |
Flatpak | Ubuntu | esm-apps/bionic | * |
Flatpak | Ubuntu | esm-apps/focal | * |
Flatpak | Ubuntu | focal | * |
Flatpak | Ubuntu | hirsute | * |
Flatpak | Ubuntu | impish | * |
Flatpak | Ubuntu | trusty | * |
Flatpak | Ubuntu | upstream | * |
Flatpak | Ubuntu | xenial | * |
Input validation is a frequently-used technique for checking potentially dangerous inputs in order to ensure that the inputs are safe for processing within the code, or when communicating with other components. Input can consist of:
Data can be simple or structured. Structured data can be composed of many nested layers, composed of combinations of metadata and raw data, with other simple or structured data. Many properties of raw data or metadata may need to be validated upon entry into the code, such as:
Implied or derived properties of data must often be calculated or inferred by the code itself. Errors in deriving properties may be considered a contributing factor to improper input validation.