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
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| 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.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Packagist | league/flysystem | < 3.35.3 | 3.35.3 | GHSA-cxf4-7mrp-vvpr |