Skip to main content

adm-zip EUVDEUVD-2026-64851

| CVE-2026-76845 MEDIUM
Improper Link Resolution Before File Access (CWE-59)
2026-08-24 VulnCheck GHSA-vwc7-r8mq-g2x9
6.8
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
6.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.6 MEDIUM

AC:H because overwrite=true is a non-default caller flag; AV:L for local filesystem access; S:C because writes escape the intended extraction boundary.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

1
Analysis Generated
Aug 24, 2026 - 14:01 vuln.today

DescriptionCVE.org

adm-zip 0.5.9 through 0.6.0 follows symbolic links at the extraction destination. Utils.sanitize in util/utils.js enforces containment by comparing only the string form of an archive entry name against the resolved extraction root, and Utils.writeFileTo opens the computed destination with fs.openSync(path, "w", 0o666), which resolves symbolic links and carries neither O_NOFOLLOW nor a pre-write fs.lstatSync check. When a path component at the destination already exists as a symbolic link pointing outside the extraction root, extractAllTo, extractAllToAsync and extractEntryTo write the entry contents through that link and then chmod its target, placing attacker-controlled content in a file outside the root without any traversal sequence appearing in the archive. Reaching the write requires overwrite to be enabled, because the preceding fs.existsSync check also resolves the link and otherwise declines. An attacker able to create a symbolic link inside a shared, reused or predictable extraction directory, such as a temporary directory or a continuous integration workspace, can overwrite any file the extracting process is permitted to write.

AnalysisAI

Symlink-following during ZIP extraction in adm-zip 0.5.9 through 0.6.0 allows a local attacker who can plant a symlink inside the extraction directory to overwrite arbitrary files accessible by the extracting process. Utils.writeFileTo calls fs.openSync without O_NOFOLLOW and performs no pre-write lstat check, so a pre-positioned symlink transparently redirects the write - and a subsequent chmod - to any target outside the extraction root without any path-traversal sequence appearing in the archive. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Recon
Identify shared or predictable extraction directory
Delivery
Plant symlink inside extraction root pointing to sensitive target file
Exploit
Supply or influence ZIP archive with matching entry name
Install
Trigger extraction call with overwrite=true
C2
fs.openSync follows symlink to target outside root
Execute
Write attacker-controlled content to target file
Impact
chmod applied to target, completing file takeover

Vulnerability AssessmentAI

Exploitation Two conditions must both be satisfied. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS 4.0 score of 6.8 (AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N) reflects the local-only attack vector and the absence of a confidentiality impact, while correctly flagging high integrity impact. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker with write access to a shared CI workspace directory creates a symbolic link at a predictable sub-path - for example, workspace/dist/config pointing to /etc/cron.d/pwned - before a build job runs. When the CI job calls extractAllTo('workspace/dist', true) on an attacker-influenced archive containing an entry named config, adm-zip resolves the destination through the symlink and writes the archive entry's contents to /etc/cron.d/pwned, then chmods it, granting the attacker a cron execution primitive under the CI agent's privileges. …
Remediation No vendor-released patch identified at time of analysis - no fix version is referenced in the VulnCheck advisory or the linked GitHub repository. … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-64851 vulnerability details – vuln.today

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