CVE-2026-39973
Full vulnerability record from the local CVENow database.
Description
Apktool is a tool for reverse engineering Android APK files. In versions 3.0.0 and 3.0.1, a path traversal vulnerability in `brut/androlib/res/decoder/ResFileDecoder.java` allows a maliciously crafted APK to write arbitrary files to the filesystem during standard decoding (`apktool d`). This is a security regression introduced in commit e10a045 (PR #4041, December 12, 2025), which removed the `BrutIO.sanitizePath()` call that previously prevented path traversal in resource file output paths. An attacker can embed `../` sequences in the `resources.arsc` Type String Pool to escape the output directory and write files to arbitrary locations, including `~/.ssh/config`, `~/.bashrc`, or Windows Startup folders, escalating to RCE. The fix in version 3.0.2 re-introduces `BrutIO.sanitizePath()` in `ResFileDecoder.java` before file write operations.
View original CVE JSON
{
"id": "CVE-2026-39973",
"sourceIdentifier": "[email protected]",
"published": "2026-04-21T02:16:07.903",
"lastModified": "2026-10-26T22:10:00.163",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Apktool is a tool for reverse engineering Android APK files. In versions 3.0.0 and 3.0.1, a path traversal vulnerability in `brut/androlib/res/decoder/ResFileDecoder.java` allows a maliciously crafted APK to write arbitrary files to the filesystem during standard decoding (`apktool d`). This is a security regression introduced in commit e10a045 (PR #4041, December 12, 2025), which removed the `BrutIO.sanitizePath()` call that previously prevented path traversal in resource file output paths. An attacker can embed `../` sequences in the `resources.arsc` Type String Pool to escape the output directory and write files to arbitrary locations, including `~/.ssh/config`, `~/.bashrc`, or Windows Startup folders, escalating to RCE. The fix in version 3.0.2 re-introduces `BrutIO.sanitizePath()` in `ResFileDecoder.java` before file write operations."
},
{
"lang": "es",
"value": "Apktool es una herramienta para la ingeniería inversa de archivos APK de Android. En las versiones 3.0.0 y 3.0.1, una vulnerabilidad de salto de ruta en “brut/androlib/res/decoder/ResFileDecoder.java” permite que un APK creado con fines maliciosos escriba archivos arbitrarios en el sistema de archivos durante la decodificación estándar (“apktool d”). Esto es una regresión de seguridad introducida en el commit e10a045 (PR #4041, 12 de diciembre de 2025), que eliminó la llamada a “BrutIO.sanitizePath()” que previamente prevenía el salto de ruta en las rutas de salida de los archivos de recursos. Un atacante puede incrustar secuencias “.. / ” en el Type String Pool de “resources.arsc” para escapar del directorio de salida y escribir archivos en ubicaciones arbitrarias, incluyendo “~/.ssh/config”, “~/.bashrc”, o carpetas de inicio de Windows, escalando a RCE. La corrección en la versión 3.0.2 reintroduce “BrutIO.sanitizePath()” en “ResFileDecoder.java” antes de las operaciones de escritura de archivos."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "iBotPeaches",
"product": "Apktool",
"versions": [
{
"version": ">= 3.0.0, < 3.0.2",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N",
"baseScore": 7.1,
"baseSeverity": "HIGH",
"attackVector": "LOCAL",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "REQUIRED",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 1.8,
"impactScore": 5.2
},
{
"source": "[email protected]",
"type": "Primary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N",
"baseScore": 7.1,
"baseSeverity": "HIGH",
"attackVector": "LOCAL",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "REQUIRED",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 1.8,
"impactScore": 5.2
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-04-22T00:00:00+00:00",
"id": "CVE-2026-39973",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-22"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:apktool:apktool:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.0.0",
"versionEndExcluding": "3.0.2",
"matchCriteriaId": "3AB0F220-1C11-421A-B777-AF3FA75A7830"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/iBotPeaches/Apktool/commit/e10a0450c7afcd9462c0b76bcbff0e7428b92bdd#diff-cd531ebe1014bfd18185bf21585ca5cdb16fbcb07703ebc47949a1b4e4e36bc3",
"source": "[email protected]",
"tags": [
"Patch"
]
},
{
"url": "https://github.com/iBotPeaches/Apktool/pull/4041",
"source": "[email protected]",
"tags": [
"Issue Tracking"
]
},
{
"url": "https://github.com/iBotPeaches/Apktool/releases/tag/v3.0.2",
"source": "[email protected]",
"tags": [
"Product"
]
},
{
"url": "https://github.com/iBotPeaches/Apktool/security/advisories/GHSA-m8mh-x359-vm8m",
"source": "[email protected]",
"tags": [
"Mitigation",
"Vendor Advisory"
]
}
]
}