jadx is a Dex to Java decompiler. From 1.5.2 to 1.5.5, a malicious .xapk file can cause jadx to write attacker-controlled archive entry contents outside the intended XAPK plugin temporary unpack directory because XApkLoader resolves each entry name directly with tmpDir.resolve(fileName) after a CWD-based ZIP security check. When jadx is launched from a directory that is an ancestor of the config directory, the arbitrary write can plant a JAR in plugins/dropins, and the next jadx run loads the JAR with URLClassLoader and ServiceLoader, executing attacker-controlled plugin code. This issue is fixed in version 1.5.6.
{
"cwe_ids": [
"CWE-22"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54684.json"
}"2026-08-12T16:41:16Z"
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54684.json"
[
{
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"line_hashes": [
"118014642406769659103776073437968672592",
"265775248268315719426659794105053302902",
"172973484744477447613924586852770070408",
"26135232408086617525104654092153467177"
],
"threshold": 0.9
},
"id": "CVE-2026-54684-7f5b5235",
"source": "https://github.com/skylot/jadx/commit/a74bb07d6eebaf4da5c2b2cbc4d3c0c3cb7517cb",
"target": {
"file": "jadx-commons/jadx-zip/src/main/java/jadx/zip/security/JadxZipSecurity.java"
}
},
{
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"length": 603.0,
"function_hash": "58550663106364603330380777435195939371"
},
"id": "CVE-2026-54684-da5fee61",
"source": "https://github.com/skylot/jadx/commit/a74bb07d6eebaf4da5c2b2cbc4d3c0c3cb7517cb",
"target": {
"function": "isValidEntryName",
"file": "jadx-commons/jadx-zip/src/main/java/jadx/zip/security/JadxZipSecurity.java"
}
}
]