os.OpenFile(path, os.O_CREATE|O_EXCL) behaved differently on Unix and Windows systems when the target path was a dangling symlink. On Unix systems, OpenFile with O_CREATE and O_EXCL flags never follows symlinks. On Windows, when the target path was a symlink to a nonexistent location, OpenFile would create a file in that location. OpenFile now always returns an error when the O_CREATE and O_EXCL flags are both set and the target path is a symlink.
The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.
Link | Tags |
---|---|
https://go.dev/cl/672396 | issue tracking |
https://go.dev/issue/73702 | issue tracking |
https://groups.google.com/g/golang-announce/c/ufZ8WpEsA3A | mailing list |
https://pkg.go.dev/vuln/GO-2025-3750 | vendor advisory |