{"id":"GO-2026-4864","summary":"TOCTOU permits root escape on Linux via Root.Chmod in os in internal/syscall/unix","details":"On Linux, if the target of Root.Chmod is replaced with a symlink while the chmod operation is in progress, Chmod can operate on the target of the symlink, even when the target lies outside the root.\n\nThe Linux fchmodat syscall silently ignores the AT_SYMLINK_NOFOLLOW flag, which Root.Chmod uses to avoid symlink traversal. Root.Chmod checks its target before acting and returns an error if the target is a symlink lying outside the root, so the impact is limited to cases where the target is replaced with a symlink between the check and operation.","aliases":["CVE-2026-32282"],"modified":"2026-04-08T01:15:15.140472Z","published":"2026-04-07T22:53:49Z","database_specific":{"url":"https://pkg.go.dev/vuln/GO-2026-4864","review_status":"REVIEWED"},"references":[{"type":"FIX","url":"https://go.dev/cl/763761"},{"type":"REPORT","url":"https://go.dev/issue/78293"},{"type":"WEB","url":"https://groups.google.com/g/golang-announce/c/0uYbvbPZRWU"}],"affected":[{"package":{"name":"stdlib","ecosystem":"Go","purl":"pkg:golang/stdlib"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.25.9"},{"introduced":"1.26.0-0"},{"fixed":"1.26.2"}]}],"ecosystem_specific":{"imports":[{"path":"internal/syscall/unix","symbols":["Fchmodat"],"goos":["linux"]}]},"database_specific":{"source":"https://vuln.go.dev/ID/GO-2026-4864.json"}}],"schema_version":"1.7.5","credits":[{"name":"Uuganbayar Lkhamsuren (https://github.com/uug4na)"}]}