mirror of
https://github.com/flatpak/flatpak.git
synced 2026-11-05 21:33:35 -05:00
71f28c42ffff7bfd132fbee1ebc50ab0d08de2d3
ensure_extensions() used g_file_resolve_relative_path() with ext->directory, which comes from runtime/SDK metadata and can contain ".." components. This allowed a malicious extension to write outside the build directory. Replace the GFile-based path resolution with glnx_chase_and_mkdirat() using GLNX_CHASE_RESOLVE_BENEATH | GLNX_CHASE_RESOLVE_NO_SYMLINKS, which rejects any path that escapes the directory fd. Convert the rest of flatpak_builtin_build_init to fd-relative operations (mkdirat, symlinkat, glnx_opendirat, glnx_shutil_rm_rf_at, glnx_file_replace_contents_at, flatpak_cp_a_at) anchored to a base_dfd opened from the build directory. Resolves: https://github.com/flatpak/flatpak/security/advisories/GHSA-8qxj-x646-phcm
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 and submit a PR
- 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
Languages
C
91.1%
Shell
6.1%
Meson
1.1%
Python
0.9%
Yacc
0.8%
