The runtime deploy path used GFile operations to manipulate files inside files/etc (passwd, group, machine-id, resolv.conf). While the "files" directory is validated with glnx_chaseat using GLNX_CHASE_RESOLVE_NO_SYMLINKS, "etc" inside it is not checked. A malicious runtime with files/etc as a symlink causes the GFile operations (g_file_delete, g_file_replace_contents, g_file_make_symbolic_link) to follow it and modify files at the symlink target. On system installs (running as root), this modifies arbitrary files — e.g. replacing /etc/resolv.conf. This commit uses fd-based operations to prevent to prevent the symlink attack. Resolves: CVE-2026-97024 Resolves: https://github.com/flatpak/flatpak/security/advisories/GHSA-8xgq-v545-vgvf
Flatpak is a system for building, distributing, and running sandboxed desktop applications on Linux.
See https://flatpak.org/ for more information.
Flatpak is available in the package repositories of most Linux distributions and can be installed from there. See https://flatpak.org/setup/ for quick setup instructions for many distributions.
Community discussion happens in #flatpak:matrix.org, on the mailing list, and on the Flathub Discourse.
Read documentation for Flatpak here.
Contributing
Flatpak welcomes contributions from anyone! Here are some ways you can help:
- Fix one of the issues and submit a PR
- Update flatpak's translations
- Improve flatpak's documentation, hosted at http://docs.flatpak.org and developed over in flatpak-docs
- Find a bug and submit a detailed report including your OS, flatpak version, and the steps to reproduce
- Add your favorite application to Flathub by writing a flatpak-builder manifest and submitting it
- Improve the Flatpak support in your favorite Linux distribution
Hacking
See CONTRIBUTING.md
Related Projects
Here are some notable projects in the Flatpak ecosystem:
- Flatseal: An app for managing permissions of Flatpak apps without using the CLI
- Flat-manager: A tool for managing Flatpak repositories
Host Requirements
Flatpak aims to run on a wide variety of systems. It is therefore conservative with required dependency versions and kernel features.
Currently, the main branch requires at least kernel version 5.8 (for
statx STATX_MNT_ID).
