← Back to CVE Explorer

CVE-2026-54684

Full vulnerability record from the local CVENow database.

Description

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.

Severity
HIGH
CVSS score
7.0 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-07-14 22:17:16.680000
Last modified
2026-10-24 22:10:00.210000
View original CVE JSON
{
  "id": "CVE-2026-54684",
  "sourceIdentifier": "[email protected]",
  "published": "2026-07-14T22:17:16.680",
  "lastModified": "2026-10-24T22:10:00.210",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "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."
    },
    {
      "lang": "es",
      "value": "jadx es un descompilador de Dex a Java. Desde la 1.5.2 hasta la 1.5.5, un archivo .xapk malicioso puede hacer que jadx escriba contenidos de entrada de archivo controlados por el atacante fuera del directorio temporal de descompresión del plugin XAPK previsto porque XApkLoader resuelve cada nombre de entrada directamente con tmpDir.resolve(fileName) después de una comprobación de seguridad ZIP basada en CWD. Cuando jadx se inicia desde un directorio que es un ancestro del directorio de configuración, la escritura arbitraria puede colocar un JAR en plugins/dropins, y la siguiente ejecución de jadx carga el JAR con URLClassLoader y ServiceLoader, ejecutando código de plugin controlado por el atacante. Este problema está solucionado en la versión 1.5.6."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "skylot",
          "product": "jadx",
          "versions": [
            {
              "version": ">= 1.5.2, < 1.5.6",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H",
          "baseScore": 7.0,
          "baseSeverity": "HIGH",
          "attackVector": "LOCAL",
          "attackComplexity": "HIGH",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.0,
        "impactScore": 5.9
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-15T14:30:45.535910Z",
          "id": "CVE-2026-54684",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-22"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/skylot/jadx/commit/a74bb07d6eebaf4da5c2b2cbc4d3c0c3cb7517cb",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/skylot/jadx/releases/tag/v1.5.6",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/skylot/jadx/security/advisories/GHSA-gpvc-ccw7-744v",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/skylot/jadx/security/advisories/GHSA-gpvc-ccw7-744v",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}