Description
Spatie Laravel Media Library before version 11.23.0 contains a file upload restriction bypass in FileAdder::defaultSanitizer(). The sanitizer checks only the final filename suffix, allowing double-extension filenames such as shell.php.jpg to bypass the blocklist, with pathinfo() preserving inner .php stems in saved filenames. The blocklist also omits executable extensions including .php6, .shtml, and .htaccess. The double-extension bypass requires a legacy Apache AddHandler configuration to achieve PHP execution; the incomplete blocklist bypass does not.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| spatie | laravel-medialibrary | < 11.23.0 | 11.23.0 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Packagist | spatie/laravel-medialibrary | < 11.23.0 | 11.23.0 | GHSA-3ggm-c5m7-hfv5 |
References
- laravel-medialibrary 11.23.0 Release Notes release-notes
- https://github.com/spatie/laravel-medialibrary/pull/3939 issue-tracking patch
- https://github.com/spatie/laravel-medialibrary/commit/608ea03703d3887c46434f5dda6af56de6346aba patch
- https://www.vulncheck.com/advisories/spatie-laravel-media-library-file-upload-restriction-bypass-via-fileadder-php third-party-advisory