Description
An issue was discovered in Nix before 2.34.7 and Lix before 2.95.2. Unbounded recursion in the NAR (Nix Archive) parser could lead to a stack-to-heap overflow when the parser is run on a coroutine stack. The stack is allocated without a guard page, which means that a stack overflow could overwrite memory on the heap and could allow arbitrary code execution as the Nix daemon (run as root in multi-user installations) if ASLR hardening is bypassed. This can be exploited by all users able to connect to the daemon (e.g., in Nix, this is configurable via the allowed-users setting, defaulting to all users). The fixed versions are 2.34.7, 2.33.6, 2.32.8, 2.31.5, 2.30.5, 2.29.4, and 2.28.7 for Nix (introduced in 2.24.4); and 2.95.2, 2.94.2, and 2.93.4 for Lix (introduced in 2.93.0).
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
NixOS Nix
Default version status: unaffected
2.24.4 to < 2.28.7affected2.29.0 to < 2.29.4affected2.30.0 to < 2.30.5affected2.31.0 to < 2.31.5affected2.32.0 to < 2.32.8affected2.33.0 to < 2.33.6affected2.34.0 to < 2.34.7affected
Lix Project Lix
Default version status: unaffected
2.93.0 to < 2.93.4affected2.94.0 to < 2.94.2affected2.95.0 to < 2.95.2affected
References
- https://discourse.nixos.org/t/security-advisory-local-privilege-escalation-in-lix-and-nix/77407 ↗
- https://github.com/NixOS/nix/security/advisories/GHSA-vh5x-56v6-4368 ↗
- https://www.openwall.com/lists/oss-security/2026/05/04/33 ↗
- https://www.openwall.com/lists/oss-security/2026/05/04/32 ↗
- https://lix.systems/blog/2026-05-05-lix-unsigned-integer-overflow/ ↗