blob: 2a1b8deb2b225585c13e822adfbead5f2c6b47a4 [file]
{
"schema_version": "1.3.1",
"id": "GO-2026-4970",
"modified": "0001-01-01T00:00:00Z",
"published": "0001-01-01T00:00:00Z",
"aliases": [
"CVE-2026-39822"
],
"summary": "Root escape via symlink plus trailing slash in os",
"details": "On Unix systems, opening a file in an os.Root improperly follows symlinks to locations outside of the Root when the final path component of the a path is a symbolic link and the path ends in /.\n\nFor example, 'root.Open(\"symlink/\")' will open \"symlink\" even when \"symlink\" is a symbolic link pointing outside of the root.",
"affected": [
{
"package": {
"name": "stdlib",
"ecosystem": "Go"
},
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "1.25.12"
},
{
"introduced": "1.26.0-0"
},
{
"fixed": "1.26.5"
},
{
"introduced": "1.27.0-0"
},
{
"fixed": "1.27.0-rc.2"
}
]
}
],
"ecosystem_specific": {
"imports": [
{
"path": "os",
"symbols": [
"OpenInRoot",
"Root.Create",
"Root.Open",
"Root.OpenFile",
"Root.OpenRoot",
"Root.ReadFile",
"Root.WriteFile",
"openRootInRoot",
"rootFS.Open",
"rootFS.ReadDir",
"rootFS.ReadFile",
"rootOpenFileNolog"
]
}
]
}
}
],
"references": [
{
"type": "REPORT",
"url": "https://go.dev/issue/79005"
},
{
"type": "WEB",
"url": "https://groups.google.com/g/golang-announce/c/OrmQE_Yp5Sc"
},
{
"type": "FIX",
"url": "https://go.dev/cl/797880"
}
],
"credits": [
{
"name": "Mundur (https://github.com/M0nd0R)"
}
],
"database_specific": {
"url": "https://pkg.go.dev/vuln/GO-2026-4970",
"review_status": "REVIEWED"
}
}