Skip to main content

zt-zip CVE-2026-63499

| EUVDEUVD-2026-116113 MEDIUM
Relative Path Traversal (CWE-23)
2026-11-03 GitHub_M
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Craft ZIP with '/' entry and permissive Unix mode
  2. Delivery
    Deliver archive to target application
  3. Exploit
    App calls ZipUtil.unpack on untrusted ZIP
  4. Execution
    Self-referencing entry permissions applied to output directory
  5. Impact
    Output directory permissions weakened for all OS users

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Relative path traversal prevention
Exploitation Conditions

The application must call one of the ZipUtil.unpack overloads on an attacker-controlled (untrusted) ZIP file, and that ZIP must contain an entry whose name resolves to the output directory itself (for example an entry named '/' or './') carrying attacker-chosen stored file permissions (Unix mode / AsiExtraField). The advisory demonstrates the issue directly on POSIX systems; on non-POSIX systems ZTFilePermissionsUtil.fetchDefaultStrategy provides fallback permission handling, so the issue is not strictly limited to POSIX. Limiting factors: affected versions are zt-zip <= 1.18.0 only; the vector is local with required user/application interaction (the target must choose to unpack the untrusted archive, UI:P); the impact is confined to changing the output directory's own permissions rather than arbitrary file write or code execution.

Impact

This is a genuine but moderate-priority issue, not a top-tier emergency. The vendor CVSS 4.0 score is 6.9 (Medium) with vector AV:L/AC:L/AT:N/PR:N/UI:P, meaning exploitation is local and depends on the victim application actively unpacking an attacker-supplied ZIP (passive user interaction), which substantially limits mass, remote, unauthenticated exploitation despite PR:N. The vuln.today Decision label is 'this_month' - a scheduled-remediation signal, not 'act_now' or 'emergency' - which aligns with the Medium severity. It is NOT in CISA KEV (no confirmed active exploitation) and no EPSS score was provided in the input, so exploitation-probability cannot be quantified here. A full working proof-of-concept is published inside the GHSA-v2g6-7r9j-v6px advisory, so weaponization effort is low, but PoC availability is a distinct signal from active exploitation and must not be conflated with it. The impact is also narrow: the flaw rewrites the permissions of the extraction output directory itself (VI:H, VA:L, VC:N) rather than achieving code execution or data theft directly. Net: real and worth patching on a normal cycle, driven more by ease of PoC and the clear fix than by any evidence of widespread attack.

Exploit ScenarioDerived

An attacker crafts a malicious ZIP whose entry name is '/' (or './') carrying a permissive stored Unix mode, and delivers it to an application that calls ZipUtil.unpack on untrusted archives. Because the path-traversal check allows the self-referencing entry, the unpacker applies those attacker-supplied permissions to the output directory itself - for example turning a previously owner-only directory into one readable/writable/executable by all OS users. A complete Java proof-of-concept demonstrating this on POSIX systems is published in the GHSA advisory.

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

ZipUtil.unpack in zt-zip 1.18.0 and earlier can rewrite the permissions of the extraction output directory itself when an untrusted ZIP contains a self-referencing entry such as '/' or './' that carries attacker-chosen stored Unix mode bits. Applications that unpack attacker-supplied archives are affected; a restrictive output directory (for example owner-only) can be made readable, writable and executable by every local user, weakening the isolation of everything written under it. A public proof-of-concept snippet is included in the vendor's GitHub security advisory; it is not verified as working exploit code against third-party applications, and there is no CISA KEV confirmation, so active exploitation is not established. The vendor-released patch is zt-zip 1.18.1, and the project's priority label places this in the 'this month' remediation window rather than an emergency tier.

RemediationAI

Vendor-released patch: upgrade org.zeroturnaround:zt-zip to 1.18.1, which makes an entry that resolves to the output directory a no-op for permission handling (see the release notes at https://github.com/zeroturnaround/zt-zip/releases/tag/v1.18.1, the advisory GHSA-v2g6-7r9j-v6px, PR https://github.com/zeroturnaround/zt-zip/pull/191 and commit 1b625467b4c3cd3a9bee9efc35bdef2f8d9c8dad). The vendor's position is that updating zt-zip is the complete fix; applications that cannot upgrade immediately should avoid handing untrusted archives to ZipUtil.unpack, and where they must, pre-filter the archive and reject or drop entries whose canonicalized name equals the output directory (names such as '/' or './') before extraction - a workaround that mirrors what the patch does, but that must be reimplemented and kept in sync as the library evolves and carries the side effect of discarding archives that legitimately wrap a single root directory. Because the impact is a permission change on the extraction directory rather than file write or code execution, additionally extracting into a directory whose parent is already restrictive and reviewing the post-extraction directory mode limits the blast radius, at the cost of operational overhead for every unpack job. Downstream applications and SBOM consumers should track the Maven coordinate org.zeroturnaround:zt-zip and confirm no resolved dependency tree still pulls 1.18.0 or earlier.

Affected VersionsENISA

zt-zip < 1.18.1

Affected Packages

euvd zt_zip fix: 1.18.1

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

The flaw is a relative path traversal (CWE-23) in how the library reconciles a ZIP entry name with the extraction destination. Historically ZipUtil kept a fast pre-check for '..' before canonicalizing a candidate destination and comparing it against the canonical output directory, so an entry whose name resolves to the output directory itself - '/' or './' - passes the escape test because it does not leave the destination. The unpack pipeline then continues into its permission-handling path and applies the entry's stored Unix mode (as carried in the ZIP external attributes and AsiExtraField) to what is, in fact, the output directory. On POSIX filesystems this directly changes the directory mode; on other supported systems ZTFilePermissionsUtil.fetchDefaultStrategy supplies fallback permission handling, so the advisory stresses the issue is not strictly POSIX-bound. The upstream fix in 1.18.1 replaces the substring scan with a segment-aware isSafeDescendantEntryName fast path plus a canonicalizing destinationIsOutputDir helper, and skips permission application when the entry resolves to the output directory, making such entries an explicit no-op. Note that the trigger is a name that canonicalizes back to the destination; the sources do not describe any race, timing or memory-corruption component, and the impact is confined to the output directory's own permission bits rather than arbitrary file write or code execution.

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.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

Triggered by processing an attacker-supplied file the victim app must unpack (AV:L, UI:R, PR:N); impact is unauthorized modification of directory permissions (I:H) with minor availability effect (A:L) and no direct confidentiality loss.

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
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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.1, ZipUtil.unpack(...) can apply stored ZIP-entry permissions to the extraction output directory when an entry name such as / or ./ resolves to that directory itself. Because the path traversal checks permit self-referencing entries that do not escape the destination, the unpacker's permission-handling path can replace restrictive output-directory permissions with attacker-supplied permissions. This affects applications that unpack untrusted ZIP files, and POSIX systems demonstrate the issue directly, while ZTFilePermissionsUtil.fetchDefaultStrategy provides fallback permission handling on other supported systems. This issue is fixed in version 1.18.1.

Threat Intelligence Overview

Prevalence
Low
niche Java ZIP convenience library, limited production deployment footprint
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

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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