Skip to main content

zt-zip EUVDEUVD-2026-116112

| CVE-2026-63436 MEDIUM
Path Traversal (CWE-22)
2026-11-03 GitHub_M
6.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft ZIP with '../' traversal entry
  2. Delivery
    Deliver archive to victim app
  3. Exploit
    App calls Zips fluent unpack().process()
  4. Execution
    Entry resolves outside destination
  5. Impact
    Arbitrary 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).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

zt-zip < 1.18.0

Affected Packages

euvd zt_zip fix: 1.18.0

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

Vendor (GitHub_M) PRIMARY 6.1 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L
vuln.today AI 6.1 MEDIUM

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.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Nov 03, 2026 - 19:18 EUVD

DescriptionCVE.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

Prevalence
Medium
common Java ZIP-utility library, but impact limited to Zips fluent API users
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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

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