CVE-2026-64846
Nix: Arbitrary file truncation outside the sandbox with recursive-nix experimental feature
Nix is a package manager for Linux and other Unix systems. Prior to 2.35.0, a malicious derivation executed with the recursive-nix experimental feature can exploit a time-of-check/time-of-use race involving final symlink handling in the LocalStore restore path. The race can cause writeFile to follow a substituted final symlink when opening a path with O_TRUNC instead of enforcing FinalSymlink::DontFollow, allowing the Nix process or nix-daemon to create or truncate an empty file outside the build sandbox with the daemon user's permissions. The primitive does not provide arbitrary-content writes and requires winning the race. This issue is fixed in version 2.35.0.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
2.8
Nix: Arbitrary file truncation outside the sandbox with recursive-nix experimental feature
Nix is a package manager for Linux and other Unix systems. Prior to 2.35.0, a malicious derivation executed with the recursive-nix experimental feature can exploit a time-of-check/time-of-use race involving final symlink handling in the LocalStore restore path. The race can cause writeFile to follow a substituted final symlink when opening a path with O_TRUNC instead of enforcing FinalSymlink::DontFollow, allowing the Nix process or nix-daemon to create or truncate an empty file outside the build sandbox with the daemon user's permissions. The primitive does not provide arbitrary-content writes and requires winning the race. This issue is fixed in version 2.35.0.
- Record
CVE-2026-64846- CVSS 3.1
- 2.8 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N - Weakness
- CWE-61, CWE-367
- Updated
- 2026-11-02
EUVDEUVD-2026-63424
2.8
Nix is a package manager for Linux and other Unix systems. Prior to 2.35.0, a malicious derivation executed with the recursive-nix experimental feature can exploit a time-of-check/time-of-use race involving final symlink handling in the LocalStore restore path. The race can cause writeFile to follow a substituted final symlink when opening a path with O_TRUNC instead of enforcing FinalSymlink::DontFollow, allowing the Nix process or nix-daemon to create or truncate an empty file outside the build sandbox with the daemon user's permissions. The primitive does not provide arbitrary-content writes and requires winning the race. This issue is fixed in version 2.35.0.
- Record
EUVD-2026-63424- CVSS 3.1
- 2.8 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N - Updated
- 2026-11-02
NVD
2.8
Nix is a package manager for Linux and other Unix systems. Prior to 2.35.0, a malicious derivation executed with the recursive-nix experimental feature can exploit a time-of-check/time-of-use race involving final symlink handling in the LocalStore restore path. The race can cause writeFile to follow a substituted final symlink when opening a path with O_TRUNC instead of enforcing FinalSymlink::DontFollow, allowing the Nix process or nix-daemon to create or truncate an empty file outside the build sandbox with the daemon user's permissions. The primitive does not provide arbitrary-content writes and requires winning the race. This issue is fixed in version 2.35.0.
- Record
CVE-2026-64846- CVSS 3.1
- 2.8 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N - Weakness
- CWE-61, CWE-367
- Updated
- 2026-11-02
OSV
2.8
Nix: Arbitrary file truncation outside the sandbox with recursive-nix experimental feature
Nix is a package manager for Linux and other Unix systems. Prior to 2.35.0, a malicious derivation executed with the recursive-nix experimental feature can exploit a time-of-check/time-of-use race involving final symlink handling in the LocalStore restore path. The race can cause writeFile to follow a substituted final symlink when opening a path with O_TRUNC instead of enforcing FinalSymlink::DontFollow, allowing the Nix process or nix-daemon to create or truncate an empty file outside the build sandbox with the daemon user's permissions. The primitive does not provide arbitrary-content writes and requires winning the race. This issue is fixed in version 2.35.0.
- Record
CVE-2026-64846- CVSS 3.1
- 2.8 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N - Weakness
- CWE-367, CWE-61
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-64846
2.8
Nix is a package manager for Linux and other Unix systems. Prior to 2.35.0, a malicious derivation executed with the recursive-nix experimental feature can exploit a time-of-check/time-of-use race involving final symlink handling in the LocalStore restore path. The race can cause writeFile to follow a substituted final symlink when opening a path with O_TRUNC instead of enforcing FinalSymlink::DontFollow, allowing the Nix process or nix-daemon to create or truncate an empty file outside the build sandbox with the daemon user's permissions. The primitive does not provide arbitrary-content writes and requires winning the race. This issue is fixed in version 2.35.0.
- Record
DEBIAN-CVE-2026-64846- CVSS 3.1
- 2.8 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-64846
2.8
Nix is a package manager for Linux and other Unix systems. Prior to 2.35.0, a malicious derivation executed with the recursive-nix experimental feature can exploit a time-of-check/time-of-use race involving final symlink handling in the LocalStore restore path. The race can cause writeFile to follow a substituted final symlink when opening a path with O_TRUNC instead of enforcing FinalSymlink::DontFollow, allowing the Nix process or nix-daemon to create or truncate an empty file outside the build sandbox with the daemon user's permissions. The primitive does not provide arbitrary-content writes and requires winning the race. This issue is fixed in version 2.35.0.
- Record
UBUNTU-CVE-2026-64846- CVSS 3.1
- 2.8 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nixDebian:12 |
All versions, plus listed versions 2.16.1+dfsg-12.16.1+dfsg-22.16.1+dfsg-32.17.1+dfsg-12.18.1+dfsg-1 Show 16 moreShow less2.22.1+dfsg-12.23.3+dfsg-12.23.3+dfsg-22.24.12+dfsg-12.24.8+dfsg-12.24.9+dfsg-12.24.9+dfsg-22.25.4+dfsg-12.26.3+dfsg-12.32.5+dfsg-12.32.5+dfsg-22.34.3+dfsg-12.34.6+dfsg-12.34.8+dfsg-12.35.4+dfsg-12.8.0-1.1 |
None known |
nixDebian:13 |
All versions, plus listed versions 2.26.3+dfsg-12.32.5+dfsg-12.32.5+dfsg-22.34.3+dfsg-12.34.6+dfsg-12.34.8+dfsg-12.35.4+dfsg-1 |
None known |
nixDebian:14 |
before 2.35.4+dfsg-1, plus listed versions 2.26.3+dfsg-12.32.5+dfsg-12.32.5+dfsg-22.34.3+dfsg-12.34.6+dfsg-12.34.8+dfsg-1 |
2.35.4+dfsg-1 |
nixUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 2.3.10+dfsg1-12.3.10+dfsg1-1build12.6.0+dfsg-22.6.0+dfsg-32.6.0+dfsg-3ubuntu0.1~esm1 |
None known |
nixUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 2.16.1+dfsg-3ubuntu12.18.1+dfsg-1ubuntu12.18.1+dfsg-1ubuntu22.18.1+dfsg-1ubuntu42.18.1+dfsg-1ubuntu52.18.1+dfsg-1ubuntu5+esm2 |
None known |
nixUbuntu:26.10 |
All versions, plus listed versions 2.34.3+dfsg-12.34.6+dfsg-12.34.6+dfsg-1build12.34.8+dfsg-12.34.8+dfsg-1build1 |
None known |
nixUbuntu:26.04:LTS |
All versions, plus listed versions 2.26.3+dfsg-1ubuntu42.26.3+dfsg-1ubuntu52.32.5+dfsg-1ubuntu32.32.5+dfsg-2ubuntu12.34.3+dfsg-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-64846 is a low vulnerability (CVSS 2.8) in Nixos Nix, published August 20, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.11%, the 1st percentile. Fixed in nix 2.35.4+dfsg-1.
References
github.com/NixOS/nix/security/advisories/GHSA-6h4g-g5j9-fm5f
github.com/NixOS/nix/pull/15401
github.com/NixOS/nix/commit/26679828f74ee6e82a4100904e6361f993ff5390
github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64846.json
nvd.nist.gov/vuln/detail/CVE-2026-64846
security-tracker.debian.org/tracker/CVE-2026-64846
ubuntu.com/security/CVE-2026-64846
cve.org/CVERecord?id=CVE-2026-64846