Skip to main content

jadx CVE-2026-54684

| EUVDEUVD-2026-44536 HIGH
Path Traversal (CWE-22)
2026-07-14 security-advisories@github.com
7.0
CVSS 3.1 · Vendor: github
Share

Severity by source

Vendor (github) PRIMARY
7.0 HIGH
AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Local malicious-file vector with required victim interaction (AV:L/UI:R), high complexity from the non-default launch-directory condition and two-run sequence (AC:H), and full code execution (C:H/I:H/A:H).

3.1 AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Local
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Source Code Evidence Fetched
Jul 22, 2026 - 10:34 vuln.today
Analysis Generated
Jul 22, 2026 - 10:34 vuln.today
Patch available
Jul 14, 2026 - 23:20 EUVD
CVE Published
Jul 14, 2026 - 22:17 cve.org
HIGH 7.0

DescriptionCVE.org

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.

AnalysisAI

Arbitrary file write leading to code execution in jadx 1.5.2 through 1.5.5 allows a malicious .xapk sample to escape the XAPK plugin unpack directory and plant a JAR under plugins/dropins, which the next jadx launch loads and executes via URLClassLoader/ServiceLoader. The flaw stems from XApkLoader calling tmpDir.resolve(fileName) after a flawed CWD-based ZIP name check, giving an analyst opening a crafted file a path traversal that escalates to attacker-controlled plugin code. Publicly available exploit code exists (SSVC exploitation: poc) but it is not in CISA KEV, and EPSS is very low at 0.13% (3rd percentile), consistent with a local, user-interaction-gated, high-complexity issue rather than mass exploitation.

Technical ContextAI

jadx is a widely used open-source Dex-to-Java decompiler for Android reverse engineering. XAPK is a ZIP-based Android package bundle; jadx's XApkLoader unpacks entries into a temporary directory before processing. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / path traversal): JadxZipSecurity validated entry names against the current working directory using CWD.resolve(entryName).normalize(), but XApkLoader then independently called tmpDir.resolve(fileName) with the raw, attacker-controlled entry name. Because the security check was anchored to CWD rather than the actual extraction target, traversal sequences that pass the check still resolve outside tmpDir. The commit fix (a74bb07) hardens JadxZipSecurity to normalize the entry, reject entries that are absolute or already start with CWD, and only then resolve - closing the mismatch that let a validated name escape the unpack directory. The write becomes code execution because jadx auto-loads plugin JARs from plugins/dropins on startup using URLClassLoader and ServiceLoader.

RemediationAI

Vendor-released patch: 1.5.6 - upgrade jadx to 1.5.6 or later, which is the primary and complete fix (release https://github.com/skylot/jadx/releases/tag/v1.5.6, fix commit https://github.com/skylot/jadx/commit/a74bb07d6eebaf4da5c2b2cbc4d3c0c3cb7517cb, advisory https://github.com/skylot/jadx/security/advisories/GHSA-gpvc-ccw7-744v). If you cannot upgrade immediately, reduce exposure by only opening .xapk files from untrusted sources inside a sandbox or disposable VM, and launch jadx from a working directory that is NOT an ancestor of the jadx config directory (e.g. run it from an isolated, unrelated folder) to break the traversal-to-plugin-write path; note this depends on knowing your config directory location and is fragile. As an additional control, audit and clear the plugins/dropins directory before each run and restrict write permissions on the jadx config/plugins directories so a planted JAR cannot be loaded, accepting that this may interfere with legitimate plugin use. These workarounds only narrow the window - patching to 1.5.6 is the durable remediation.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Share

CVE-2026-54684 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy