Miggo Logo

CVE-2021-26028:
Path Traversal within joomla/archive zip class

5.5

CVSS Score
3.1

Basic Information

EPSS Score
0.01535%
Published
3/24/2021
Updated
1/9/2023
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
joomla/archivecomposer< 1.1.101.1.10

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from insufficient path validation during ZIP extraction. The GitHub commit 32c9009 introduced the 'isBelow()' check in both extractCustom() and extractNative() methods, confirming these functions previously lacked path traversal safeguards. Before the patch, they concatenated user-controlled filenames (from ZIP entries) with the destination path without resolving absolute paths or checking for directory escapes. This allowed malicious ZIP entries with '../' sequences to write files outside the target directory.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

*n issu* w*s *is*ov*r** in Jooml*! *.*.* t*rou** *.*.**. *xtr**tin* *n sp**i*il*y *r**t** zip p**k*** *oul* writ* *il*s outsi** o* t** int*n*** p*t*.

Reasoning

T** vuln*r**ility st*ms *rom insu**i*i*nt p*t* v*li**tion *urin* ZIP *xtr**tion. T** *it*u* *ommit ******* intro*u*** t** 'is**low()' ****k in *ot* `*xtr**t*ustom()` *n* `*xtr**tN*tiv*()` m*t*o*s, *on*irmin* t**s* *un*tions pr*viously l**k** p*t* tr*