Skip to main content

adm-zip CVE-2026-114105

| EUVDEUVD-2026-106908 MEDIUM
Incorrect Permission Assignment for Critical Resource (CWE-732)
2026-10-21 VulnCheck GHSA-5mgq-mp28-q7x2
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Deliver crafted zip with setuid external attributes
  2. Exploit
    Root process extracts via adm-zip with keepOriginalPermission
  3. Execution
    Unmasked bits set setuid on attacker binary
  4. Impact
    Execute binary to escalate to root

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Permission assignment review
Exploitation Conditions

Three concrete prerequisites must all hold: (1) the adm-zip keepOriginalPermission option must be explicitly enabled (non-default), causing stored external file attributes to be applied verbatim via chmod without masking setuid/setgid/sticky bits; (2) the extraction must run in a privileged context (as root) so the setuid/setgid bits confer meaningful elevation; and (3) the resulting attacker-controlled executable must subsequently be run. The attacker also needs to deliver a crafted zip whose external file attributes encode the special bits. Limiting factors: local attack vector, dependence on the non-default keepOriginalPermission setting, the need for root-context extraction, and a separate later execution step - each narrows realistic exploitability below the raw score.

Impact

Signals point to a real but conditional, medium-severity privilege-escalation issue rather than a top-priority emergency. The input CVSS 4.0 vector (AV:L/AC:L/PR:N/UI:N) scores 6.9 with an integrity-only impact (VI:H, VC:N, VA:N), which is consistent with CWE-732 incorrect permission assignment leading to setuid/setgid escalation - this is NOT an information-disclosure bug despite the 'Information Disclosure' tag (VC:N contradicts that tag). Exploitation status: no public exploit identified at time of analysis (no KEV listing and no POC referenced in the supplied data). No EPSS score or SSVC decision data was provided, so exploitation probability and automatability cannot be quantified from the input. The local attack vector and the dependence on a non-default library option plus a root-context extraction substantially limit real-world risk: this is a supply-chain/toolchain hazard that matters most where untrusted archives are extracted by privileged processes, not a broadly wormable network flaw. Treat as a dependency-hygiene patch priority rather than an incident-grade threat absent evidence of exploitation.

Exploit ScenarioDerived

An attacker crafts a malicious zip whose external file attributes encode a setuid-root bit on an attacker-controlled executable, then gets a privileged (root) process using adm-zip with keepOriginalPermission enabled to extract it. The unmasked permission bits pass into chmod, so the extracted binary becomes setuid root; when that binary is later executed, the attacker gains root privileges. No public exploit code was identified in the provided data, and the local/config-dependent nature means delivery and the privileged extraction step must both be arranged.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 21, 2026

adm-zip versions before 0.6.1 can apply attacker-controlled setuid, setgid, or sticky bits when extracting archives with the non-default keepOriginalPermission option enabled. This is a conditional local privilege-escalation risk: the archive must be extracted in a privileged context such as root and the resulting executable must later be run, so exploitation depends on that specific workflow. No public exploit identified at time of analysis, and the vendor-released patch is adm-zip 0.6.1.

RemediationAI

Upgrade to adm-zip 0.6.1, the vendor-released patched version. If immediate upgrade is not possible, avoid using keepOriginalPermission when extracting untrusted archives, extract untrusted ZIP files as an unprivileged user rather than as root, and strip setuid, setgid, and sticky bits from extracted files before execution; these workarounds trade away original permission preservation or require changes to privileged extraction workflows. Refer to the vendor advisory at https://github.com/cthackers/adm-zip/security/advisories/GHSA-qjf8-53jv-w9w6 and the VulnCheck advisory at https://www.vulncheck.com/advisories/adm-zip-before-0.6.1-privilege-escalation-via-keeporiginalpermission-setuid-bits for update guidance.

Affected VersionsENISA

adm-zip 0 <0.6.1

Affected Packages

euvd adm_zip fix: 0.6.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

adm-zip is a Node.js ZIP archive library identified in the CPE data as cthackers adm-zip. The root cause is CWE-732, incorrect permission assignment: when keepOriginalPermission is enabled, external file attributes stored in ZIP entries are passed into chmod without masking setuid, setgid, or sticky bits. A crafted ZIP can therefore cause extracted files to carry elevated permission bits. The issue is local and highly conditional, requiring the non-default keepOriginalPermission option, extraction in a privileged context, and later execution of the attacker-influenced file; these prerequisites narrow practical exploitability below the raw score.

Know when npm 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 (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.2 MEDIUM

A privileged local process extracts attacker-supplied archive data, so AV:L and PR:N (victim holds privileges, not attacker); impact is integrity-only (setuid escalation) with no confidentiality or availability loss.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 21, 2026 - 02:01 EUVD

DescriptionCVE.org

Adm-zip before 0.6.1 contains an incorrect permission assignment vulnerability that allows attackers to set setuid, setgid, or sticky bits on extracted files when keepOriginalPermission is enabled. Attackers can craft zip external file attributes that pass unmasked into chmod, letting attacker-controlled executables gain elevated privileges when extracted as root and later run.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Medium
popular npm zip library, but privileged root extraction is a narrower use case
Data Quality
6 sources
Confidence: High

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 0.1%
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
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Related Vulnerabilities in adm-zip ZIP Processing Vulnerabilities

View all 4

More in npm

View all
CVE-2021-43616 CRITICAL POC
9.8 Nov 13

The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in pack

CVE-2026-61568 CRITICAL POC
9.6 Sep 15

DNS rebinding against the local Streamable HTTP MCP listener in @zereight/mcp-gitlab before 2.1.30 lets a malicious web

CVE-2026-101894 CRITICAL POC
9.1 Sep 28

Archive extraction in the Node.js decompress package allows a crafted archive containing chained symlink entries to reso

CVE-2026-91127 HIGH POC
8.2 Sep 18

The legacy DOC renderer in File Viewer emits document-controlled hyperlink targets into generated HTML after character e

CVE-2026-102826 HIGH POC
8.1 Sep 29

Untrusted git configuration includes reachable through simple-git before 4.0.0 let an attacker execute arbitrary command

CVE-2026-102281 HIGH POC
7.5 Sep 28

A remote, unauthenticated denial-of-service condition in the NestJS (Nest) microservices framework lets an attacker cras

CVE-2026-102278 HIGH POC
7.5 Sep 28

Deeply nested brace patterns cause unbounded recursion in the npm brace-expansion library, exhausting the native stack a

CVE-2026-102276 HIGH POC
7.5 Sep 28

Stack exhaustion in the npm library brace-expansion (all versions prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10) lets a craf

CVE-2026-101910 MEDIUM POC
6.9 Sep 28

The JavaScript library ip-address (npm) fails to treat the NAT64 local-use prefix 64:ff9b:1::/48 as private, so applicat

CVE-2026-101912 MEDIUM POC
6.3 Sep 28

Cross-family subnet comparisons in the ip-address npm library (all versions before 10.7.1) can cause isInSubnet and isHo

CVE-2026-101911 MEDIUM POC
6.3 Sep 28

Denial of service in the ip-address JavaScript/npm library (all versions prior to 10.7.1) lets remote attackers stall or

CVE-2026-51996 CRITICAL
9.8 Sep 24

A credential-isolation flaw in geelen mcp-remote 0.1.16 through 0.1.38 allows a remote attacker who controls or can pred

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