
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-75598 is a Zip Slip path traversal vulnerability in the Gradle Shadow plugin (com.gradleup.shadow) affecting all versions prior to 9.6.0. The ShadowCopyAction component does not independently validate or sanitize ZIP entry names before writing them to the output fat JAR, allowing a malicious dependency to embed path traversal sequences (e.g., ../../../../tmp/pwned.txt) that are preserved verbatim in the resulting archive. The vulnerability was originally published on July 16, 2026, and added to the GitHub Advisory Database on November 9, 2026. It carries a CVSS v3.1 base score of 6.3 (Medium) per NVD, and 8.1 (High) per the GitHub Advisory Database (Github Advisory, GradleUp Advisory).
The root cause (CWE-22: Path Traversal) lies in ShadowCopyAction.kt, which relies entirely on Gradle's ZipFileTree for entry-name sanitization rather than implementing its own validation. On Gradle versions below 7.6.2 or 8.x below 8.2.0, ZipFileTree does not reject traversal sequences, making those builds directly exploitable at build time; on newer Gradle versions, the risk shifts to downstream consumers who extract the produced shadow JAR without path traversal protection. The fix introduced in commit 0c2744f adds an explicit check in the zipEntry() utility function that throws a GradleException if any path component equals .. (splitting on both / and \). A proof-of-concept Python snippet is publicly available in the advisory, demonstrating construction of a malicious JAR with a traversal entry name (GradleUp Advisory, Fix Commit).
Successful exploitation allows an attacker who controls a dependency in a Shadow-enabled Gradle project to embed arbitrary files at attacker-chosen paths on any system that extracts the resulting fat JAR without path traversal protection. This enables arbitrary file overwrite, which can lead to code execution by overwriting scripts, configuration files, or binaries — particularly in CI/CD pipelines, deployment automation, or any tooling that unpacks the shadow JAR using raw ZipInputStream or older unpackers. Confidentiality impact is none, but integrity impact is rated High, as critical files outside the intended extraction directory can be silently overwritten (Github Advisory, GradleUp Advisory).
A proof-of-concept exploit (a short Python snippet demonstrating construction of a malicious JAR) is publicly available in the official security advisory; it demonstrates the bug without achieving full exploitation of a live target (GradleUp Advisory). There is no evidence of in-the-wild exploitation at this time, and no threat actor attribution has been reported. The EPSS score is approximately 0.14% (3rd percentile), indicating a low near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. Exploitation is not automatable and requires user interaction (a developer must build a project that includes the malicious dependency) (Github Advisory).
zipfile module, create a JAR (evil.jar) containing a ZIP entry with a path traversal name:import zipfile
with zipfile.ZipFile('evil.jar', 'w') as zf:
zf.writestr('../../../../tmp/zipslip_proof.txt', 'pwned')evil.jar to the target Gradle project's dependency graph (e.g., via a compromised Maven repository, dependency confusion attack, or direct inclusion as a local file dependency).gradle shadowJar. ShadowCopyAction copies ZIP entries from dependencies without sanitizing entry names, preserving the traversal sequence in the output fat JAR.unzip -l build/libs/*.jar | grep "\.\."ZipInputStream) extracts the shadow JAR without path traversal protection, the traversal entry is written to the resolved path outside the intended directory (e.g., /tmp/zipslip_proof.txt), enabling arbitrary file overwrite or code execution (GradleUp Advisory)./tmp/, parent directories of the extraction target, or system directories); presence of a shadow JAR containing ZIP entries with .. in their names.GradleException messages containing "Malicious ZIP entry containing path traversal sequence:" in Gradle build output (only on patched versions ≥ 9.6.0 — absence of this error on older versions does not indicate safety).~/.m2/repository) or Gradle caches (~/.gradle/caches) that contain ZIP entries with path traversal sequences (detectable via unzip -l <file>.jar | grep "\.\.").Upgrade the Gradle Shadow plugin to version 9.6.0 or later, which introduces explicit path traversal validation in the zipEntry() utility function, throwing a GradleException for any entry containing .. path components (Shadow 9.6.0 Release, Fix Commit). Note that upgrading Gradle alone (to ≥ 7.6.2 or ≥ 8.2.0) mitigates the build-time risk for ZipFileTree-based paths but does not universally protect against all Shadow code paths or downstream consumers. As additional hardening measures: audit all third-party dependencies for suspicious ZIP entries before building fat JARs, use path traversal-safe extraction libraries for any tooling that unpacks shadow JARs, and restrict dependency sources to trusted, verified repositories (GradleUp Advisory).
The vulnerability was reported by security researcher ikersl and published by maintainer Goooler on July 16, 2026, with a fix included in the same release (GradleUp Advisory). The 9.6.0 release received positive reactions from community members on GitHub, with several users reacting with thumbs up and heart emojis to the release notes (Shadow 9.6.0 Release). No significant broader media coverage or notable researcher commentary beyond the advisory itself has been identified.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."