Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft ZIP with ../ traversal entries
-
ExploitDeliver archive to target application
-
ExecutionApp invokes ArchiveZip::extract
-
ImpactFiles written outside extraction directory
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 | Exploitation requires that a PHP application embed kiwilan/php-archive (<= 2.3.02) and call ArchiveZip::extract on an attacker-controlled or attacker-supplied ZIP archive; the attacker cannot trigger it unaided. The limiting factor encoded as UI:P/UI:R is this required processing action - a user or application must choose to extract the malicious archive, so there is no direct remote-unauthenticated server exploitation against a default service. Impact is further bounded to writing files outside the intended target directory (classic Zip Slip), and realistic damage depends on the extraction path, filesystem permissions, and whether overwritten locations are security-sensitive. |
| Impact | This is a LOW real-world priority despite being a publicly-disclosed path traversal (Zip Slip) issue. The CVSS 4.0 base score is only 2.1, with the vendor-supplied vector AV:N/AC:L/AT:N/PR:N/UI:P and limited low-rated impacts (VC:L/VI:L/VA:L), meaning no single impact dimension is high. The strongest escalating signal is POC availability - a public exploit gist exists and E:P (Proof-of-Concept) is encoded in the vector - but there is no CISA KEV listing and no EPSS score was provided, so there is no evidence of active or widespread exploitation. The UI:P component is decisive: exploitation is not fully automatable because a victim application/user must actually extract an attacker-supplied archive using the vulnerable ArchiveZip::extract function. The report originates solely from VulDB and the vendor was contacted but did not respond, so there is no vendor advisory or confirmed patch - treat affected-version and fix data as unverified. Net: a real but low-severity library bug with public POC, not a drop-everything issue. |
| Exploit ScenarioDerived | An attacker crafts a ZIP archive containing entries with '../' path-traversal sequences in their filenames and gets a PHP application that uses kiwilan/php-archive to process it (e.g. an upload or import feature). When the application calls ArchiveZip::extract, files are written outside the intended extraction directory, potentially overwriting or planting files elsewhere on disk. A public proof-of-concept exploit is available on GitHub (gist by 0xSebin). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
A path traversal (Zip Slip) flaw in kiwilan/php-archive through version 2.3.02 lets an attacker craft a ZIP archive whose entry names escape the intended extraction directory when ArchiveZip::extract() is called, allowing files to be written to arbitrary locations the PHP process can reach. The library is a dependency, not a network service, so exploitation requires the host application to pass an attacker-influenced archive to extract() and to run with filesystem permissions that make the overwritten paths meaningful. Publicly available exploit code exists (a proof-of-concept gist is referenced alongside the VulDB entry), but there is no evidence of active exploitation in the wild, and the vendor did not respond to the disclosure.
RemediationAI
No vendor-released patch is identified at time of analysis: the maintainer was contacted early but did not respond, so upgrades within the 2.x line do not remove the flaw. The most direct mitigation is to stop calling ArchiveZip::extract() on untrusted input, or to wrap it with a pre-validation pass that iterates ZipArchive entries, rejects any name containing '..' segments, backslashes, or absolute/drive-letter prefixes, and confirms that realpath(destination . '/' . entryName) still begins with realpath(destination) before extraction; the trade-off is that legitimate archives using relative or unusual nesting may be rejected and must be normalized first. Alternatively, extract into a disposable directory owned by a low-privilege account outside the web root, strip executable permissions and disallow symlink entries, then move only allow-listed files into place - this limits Zip Slip write primitives to a sandbox at the cost of an extra copy step and tighter deployment configuration. Applications that cannot accept either control should replace the dependency with a maintained extraction library that performs canonical path checks, and should add upload-time scanning that inspects ZIP central-directory entry names before any processing occurs. Reference material: https://vuldb.com/vuln/422348 and the public proof-of-concept at https://gist.github.com/0xSebin/90d210e703f880d59dbde243fae3aa75.
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
kiwilan/php-archive is a PHP utility library that wraps ZIP handling for Laravel/PHP projects; the vulnerable code path is ArchiveZip::extract() in src/Readers/ArchiveZip.php, which enumerates archive entries and writes them to disk. CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) manifests here as classic 'Zip Slip': the implementation trusts the entry name supplied by the archive (including '../' sequences, absolute paths, or directory-traversal encodings) and concatenates it with the destination directory without canonicalizing and verifying the resulting absolute path stays inside the target folder. Because ZIP entry names are fully attacker-controlled metadata, an archive that looks benign when listed can still deliver payloads such as PHP files into web-accessible directories. The CVSS v4.0 vector records PR:N but UI:P, and our independent CVSS 3.1 assessment (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L) mirrors that: the 'user interaction' element is not a human click but the application's decision to extract an untrusted archive, so there is no unaided remote attack surface against a default deployment. Impact is bounded to low-integrity/confidentiality/availability effects on files the PHP user can write, with severity depending on whether the extraction target sits beneath a web root or holds configuration data.
Know when PHP 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Malicious archive is delivered over the network (AV:N) but a user/app must extract it (UI:R); no auth needed (PR:N), and traversal writes yield limited low read/write/availability impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A weakness has been identified in kiwilan php-archive up to 2.3.02. This affects the function ArchiveZip::extract of the file src/Readers/ArchiveZip.php of the component Extraction. This manipulation causes path traversal. The attack is possible to be carried out remotely. The exploit has been made available to the public and could be used for attacks. The vendor was contacted early about this disclosure but did not respond in any way.
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.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-104607
GHSA-m3xg-f8vh-5p22
NVD
CVE.org
EPSS
VulDB
Exploit-DB