Skip to content
OpenAdvisories
Low · 3.5 CVE-2026-102601 EUVD-2026-88998GHSA-cxf4-7mrp-vvpr

Flysystem: WhitespacePathNormalizer's control-character (CorruptedPathDetected) check is bypassed by malformed UTF-8 in the path, affecting every adapter

Published Sep 29, 2026 · Updated Sep 29, 2026 · Assigned by GitHub_M

Description

Flysystem is an open source file storage library for PHP. Prior to 3.35.3, the default WhitespacePathNormalizer in src/WhitespacePathNormalizer.php used by Filesystem across adapters calls preg_match with the u modifier and treats both false and 0 as falsy. A path containing malformed UTF-8 causes PCRE to return false, so paths that also contain control characters bypass CorruptedPathDetected::forPath() in normalizePath(). Filesystem::write() can store such names and Filesystem::listContents() can return the raw ANSI escape sequences, allowing hidden or spoofed terminal file listings when an administrator displays them. This issue is fixed in version 3.35.3.

Affected products

VendorProductAffectedFixed
thephpleague flysystem < 3.35.3 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 php-league-flysystem 3.36.0-1 —
Debian 13 php-league-flysystem No fix yet —
Debian 12 php-league-flysystem No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 php-league-flysystem No fix yet —
Ubuntu 26.04 LTS php-league-flysystem No fix yet —
Ubuntu 24.04 LTS php-league-flysystem No fix yet —
Ubuntu 22.04 LTS php-league-flysystem No fix yet —
Ubuntu 16.04 LTS php-league-flysystem No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
Packagist league/flysystem < 3.35.3 3.35.3 GHSA-cxf4-7mrp-vvpr

References