CVE-2020-26312: dotmesh arbitrary file read and/or write
8.1
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.43004%
CWE
Published
5/14/2024
Updated
5/14/2024
KEV Status
No
Technology
Go
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
github.com/dotmesh-io/dotmesh | go | <= 0.8.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from how untarFile
handles symbolic links. While it uses filepath.Clean
and checks for absolute paths, it fails to properly resolve nested relative symlink chains. The proof-of-concept demonstrates that creating a symlink to '..' within the archive root (allowed) followed by another symlink using that path as a base can escape the extraction directory. The function's validation
logic in the tar.TypeSymlink
case (lines 255-260 in tar.go
) doesn't account for cumulative path traversal through multiple symlink layers, making it vulnerable to directory escape attacks.