Home Explore Blog CI



nix

doc/manual/source/release-notes/rl-1.11.10.md
8f5ca3bc02da389e95defec85a5e0753c1d1df7bbf59a0ed000000030000047d
# Release 1.11.10 (2017-06-12)

This release fixes a security bug in Nix’s “build user” build isolation
mechanism. Previously, Nix builders had the ability to create setuid
binaries owned by a `nixbld` user. Such a binary could then be used by
an attacker to assume a `nixbld` identity and interfere with subsequent
builds running under the same UID.

To prevent this issue, Nix now disallows builders to create setuid and
setgid binaries. On Linux, this is done using a seccomp BPF filter. Note
that this imposes a small performance penalty (e.g. 1% when building GNU
Hello). Using seccomp, we now also prevent the creation of extended
attributes and POSIX ACLs since these cannot be represented in the NAR
format and (in the case of POSIX ACLs) allow bypassing regular Nix store
permissions. On macOS, the restriction is implemented using the existing
sandbox mechanism, which now uses a minimal “allow all except the
creation of setuid/setgid binaries” profile when regular sandboxing is
disabled. On other platforms, the “build user” mechanism is now
disabled.

Thanks go to Linus Heckemann for discovering and reporting this bug.

Chunks
251b5a66 (1st chunk of `doc/manual/source/release-notes/rl-1.11.10.md`)
Title: Release 1.11.10: Security Fix for Build User Isolation
Summary
Release 1.11.10 addresses a security vulnerability in Nix's build user isolation that allowed builders to create setuid binaries, potentially enabling attackers to assume a `nixbld` identity. The fix prevents the creation of setuid/setgid binaries using seccomp BPF filters on Linux, a sandbox on macOS, and disabling the build user mechanism on other platforms. The release also restricts the creation of extended attributes and POSIX ACLs. Linus Heckemann is credited with discovering and reporting the vulnerability.