Bug 2539417 (CVE-2026-96279)

Summary: CVE-2026-96279 flatpak: flatpak: Path traversal issue in OCI archive extraction via hardlinks
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: rhel-process-autobot, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A malicious OCI registry can hardlink arbitrary host files into the extraction directory when a user installs or updates a Flatpak application from an OCI remote, allowing disclosure of arbitrary host file contents. For system-wide installs running as root, this includes sensitive files such as /etc/shadow.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-09-23 14:01:53 UTC
GHSA-9rww-v4mm-x4jg (https://github.com/flatpak/flatpak/security/advisories/GHSA-9rww-v4mm-x4jg)

Description: When extracting OCI layer archives, Flatpak rebases archive entry pathnames to the destination directory using g_build_filename, and sets ARCHIVE_EXTRACT_SECURE_NODOTDOT to reject .. components in both pathnames and hardlink targets. However, hardlink targets were not rebased to the destination directory. A crafted archive entry with an absolute hardlink target (e.g. /etc/shadow) causes libarchive to call link() with that path directly, hardlinking the host file into the extraction directory and making its contents readable. An attacker controlling an OCI registry can serve a crafted layer archive that exploits this during flatpak install or flatpak update.

Mitigation: Only install applications from trusted OCI registries. Flatpak remotes using the default OSTree transport are not affected. Versions 1.16.x and older are not believed to be vulnerable (introduced in 1.17.0). Fixed in 1.18.1. Reported by @swick.