go-tuf is a Go implementation of The Update Framework (TUF). go-tuf's TAP 4 Multirepo Client uses the map file repository name string (repoName) as a filesystem path component when selecting the local metadata cache directory. Starting in version 2.0.0 and prior to version 2.4.1, if an application accepts a map file from an untrusted source, an attacker can supply a repoName containing traversal (e.g., ../escaped-repo) and cause go-tuf to create directories and write the root metadata file outside the intended LocalMetadataDir cache base, within the running process's filesystem permissions. Version 2.4.1 contains a patch.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-22"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/24xxx/CVE-2026-24686.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "2.0.0"
},
{
"fixed": "2.4.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "d361e2ea24e427581343dee5c7a32b485d79fcc0"
}
],
"source": "REFERENCES_COMMIT"
},
{
"cpe": "cpe:2.3:a:theupdateframework:go-tuf:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.0.0"
},
{
"fixed": "2.4.1"
}
],
"source": "CPE_RANGE"
}
]
}