CVE-2026-104081: Php Single Pass Traversal Strip Path Traversal

A single non-recursive str_replace() pass is used to strip '../' or '..\' from a path or archive entry name. One pass is not idempotent: crafted names such as "....//" lose their inner "../" and the residual ".." + "/" re-splice into a live "../", so the "sanitized" path still escapes the extraction directory (Zip Slip) and enables arbitrary file overwrite,

Provally CuratedPublic repositoryHighHigh confidenceVerifiedApache-2.0PHP
greprules fetch cve-2026-104081-php-single-pass-traversal-strip-path-traversal --engine opengrep

Description

A single non-recursive str_replace() pass is used to strip '../' or '..\' from a path or archive entry name. One pass is not idempotent: crafted names such as "....//" lose their inner "../" and the residual ".." + "/" re-splice into a live "../", so the "sanitized" path still escapes the extraction directory (Zip Slip) and enables arbitrary file overwrite,