| { |
| "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" |
| } |
| } |