Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft ZIP with '../' traversal entry
-
DeliveryDeliver archive to victim app
-
ExploitApp calls Zips fluent unpack().process()
-
ExecutionEntry resolves outside destination
-
ImpactArbitrary file written outside outputDir
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The application must extract an untrusted/attacker-supplied ZIP archive specifically through the Zips fluent API - Zips.get(zip).unpack().destination(dir).process() - on a vulnerable version (<= 1.17); both the normal copy branch and the ZipEntryTransformer branch are affected. The malicious archive must contain an entry whose name uses parent-directory traversal (e.g. '../escape/poc.txt' or a trailing-slash directory entry like '../escape/'). LIMITING FACTORS: applications that extract untrusted archives only via ZipUtil.unpack(...) are entirely unaffected because that API already calls checkDestinationFileForTraversal; exploitation requires the victim application to process the attacker's archive (UI:R) and depends on filesystem permissions and application layout for the write to be impactful; the vector is local (AV:L), so there is no direct remote network trigger in the CVSS assessment. Successful traversal writes are also bounded by where the destination directory sits and what paths the process can write to. |
| Impact | This is a genuine but conditional path-traversal write (CWE-22) rated 6.1 Medium, and the signals are internally consistent rather than inflated. The CVSS vector CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L describes a local vector requiring victim interaction (the application must be made to process an attacker-supplied archive), no privileges, low complexity, arbitrary file write (I:H) with no confidentiality loss (C:N) and limited availability impact (A:L) - which fits an arbitrary-file-write-outside-destination primitive, not remote code execution. The vuln.today priority is 'this_month' (not act_now/emergency), it is NOT on CISA KEV, and no EPSS score was supplied, so there is no evidence of active or widespread exploitation. A detailed public proof-of-concept with observed output is present in the GHSA advisory, demonstrating the flaw is real and trivially reproducible, but PoC availability is distinct from active exploitation. Crucially, exploitation is gated on the application's choice of API: only the Zips fluent unpack path is affected, while ZipUtil.unpack(...) was never vulnerable. Net: a real, actionable issue to patch this cycle, but its blast radius is scoped to a specific API usage and local/interaction-dependent delivery, so it is not a drop-everything network-exploitable emergency. EPSS is missing, which limits probabilistic prioritization. |
| Exploit ScenarioDerived | An application uses Zips.get(zip).unpack().destination(outputDir).process() to extract archives that originate from untrusted users (e.g. an upload or import feature). An attacker submits a crafted ZIP containing an entry named like '../escape/poc.txt'; when the app extracts it, the file is written outside outputDir, enabling arbitrary file write that could overwrite configuration, scripts, or other sensitive files subject to filesystem permissions. A working proof-of-concept with observed output is published in the GHSA advisory, and because AV:L/AC:L the main barrier is simply getting the victim application to process the malicious archive (UI:R). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Path traversal in the zt-zip Java library's Zips fluent unpack API lets a malicious archive entry such as '../escape/poc.txt' (or a trailing-slash directory entry like '../escape/') be written outside the configured destination directory, affecting versions 1.17 and earlier and covering both the normal copy branch and the ZipEntryTransformer branch. Only applications that extract untrusted archives through Zips.get(zip).unpack().destination(dir).process() are exposed; code that uses ZipUtil.unpack(...) is unaffected because that path already performs a destination-boundary check. Rated 6.1 Medium (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L) with integrity impact only and no direct network trigger, it requires the victim application to process an attacker-supplied archive; a public PoC reference exists in the upstream advisory, and no active exploitation has been confirmed.
RemediationAI
Vendor-released patch: upgrade to zt-zip 1.18.0 (Maven org.zeroturnaround:zt-zip:1.18.0, release tag v1.18.0), which routes the fluent unpack path through ZipUtil.checkDestinationFileForTraversal by way of PR #180 (commit 59a76ad576b0fcd50ea018e3608afb946c1492fd) and adds regression tests for the plain, transformer and directory-entry branches; see https://github.com/zeroturnaround/zt-zip/security/advisories/GHSA-52c6-99qm-3hqr for details. If upgrading cannot be done immediately, applications can avoid the vulnerable entry point entirely by extracting untrusted archives with ZipUtil.unpack(zip, dir), which already calls checkDestinationFileForTraversal and throws MaliciousZipException on escaping entries, or by pre-screening every entry name for '..' segments and absolute paths before handing the archive to the Zips fluent API - both shift responsibility for validation onto the calling application and will reject legitimate archives containing such names. Because impact depends on filesystem permissions and application layout, running extraction under a low-privilege account or restricting write access on the parent of the destination directory limits the blast radius of a successful traversal write while the upgrade is scheduled.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
zt-zip (Maven org.zeroturnaround:zt-zip) is a convenience wrapper around java.util.zip for ZIP archive manipulation. The root cause is CWE-22: in src/main/java/org/zeroturnaround/zip/Zips.java, Zips.UnpackingCallback.process(...) builds the output path directly from ZipEntry.getName() as new File(destination, entryName) and then calls FileUtils.forceMkdir, createNewFile and FileUtils.copy (or transformIntoFile for transformer entries) without canonicalizing the result against the destination. Because java.util.zip.ZipEntry names are arbitrary attacker-controlled strings, '..' segments resolve outside the target directory. The sibling API ZipUtil.unpack(...) already routes through checkDestinationFileForTraversal, which was private; the fix in PR #180 simply makes that method package-private/static and reuses it in the fluent path. The upstream tests also show the guard must run before the isDirectory() branch, since a directory entry escapes through forceMkdir rather than a file copy. Two operational details from the advisory matter: the flaw is confined to the parallel Zips unpack implementation (the guard existed in the library but did not cover this entry point), and the practical reach of a successful write is bounded by filesystem permissions and where the destination directory sits.
Know when Java gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L
Attacker-supplied archive is processed locally by the victim app (AV:L, UI:R); no auth needed (PR:N); arbitrary file write gives I:H with no read (C:N) and limited A:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
zt-zip is a Java library that provides convenience methods for ZIP archive manipulation. Prior to 1.18.0, the Zips.get(zip).unpack().destination(outputDir).process() fluent API in src/main/java/org/zeroturnaround/zip/Zips.java constructs output files directly from ZIP entry names without applying the destination-boundary validation used by ZipUtil.unpack(...). A crafted entry containing parent-directory traversal can therefore write outside outputDir through both the normal copy branch and the ZipEntryTransformer branch. Applications that extract untrusted archives only through ZipUtil.unpack(...) are unaffected because that API already calls checkDestinationFileForTraversal. This issue is fixed in version 1.18.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
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
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-116112
NVD
CVE.org
GitHub
Exploit-DB