CVE-2026-48557
Spatie Laravel Media Library < 11.23.0 File Upload Restriction Bypass via FileAdder.php
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.7
Spatie Laravel Media Library < 11.23.0 File Upload Restriction Bypass via FileAdder.php
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.
- Record
CVE-2026-48557- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-184
- Updated
- 2026-11-08
EUVDEUVD-2026-33439
8.7
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.
- Record
EUVD-2026-33439- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-08
GitHub AdvisoriesGHSA-3ggm-c5m7-hfv5
8.7
Spatie Laravel Media Library contains a file upload restriction bypass
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.
- Record
GHSA-3ggm-c5m7-hfv5- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-184
- Updated
- 2026-11-02
NVD
8.7
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.
- Record
CVE-2026-48557- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-184
- Updated
- 2026-11-02
OSV
8.7
Spatie Laravel Media Library < 11.23.0 File Upload Restriction Bypass via FileAdder.php
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.
- Record
CVE-2026-48557- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-184
- Updated
- 2026-11-02
OSVGHSA-3ggm-c5m7-hfv5
8.7
Spatie Laravel Media Library contains a file upload restriction bypass
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.
- Record
GHSA-3ggm-c5m7-hfv5- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-184
- Updated
- 2026-11-02
OSVCLSA-2026-1783558973 No score
TuxCare security update for spatie/laravel-medialibrary (2 CVEs)
TuxCare rebuilt spatie/laravel-medialibrary to address 2 CVEs. Fixed in 10.15.0-p2+tuxcare.
- Record
CLSA-2026-1783558973- Updated
- 2026-11-02
OSVCLSA-2026-1783645380 No score
TuxCare security update for spatie/laravel-medialibrary (2 CVEs)
TuxCare rebuilt spatie/laravel-medialibrary to address 2 CVEs. Fixed in 9.12.4-p2+tuxcare.
- Record
CLSA-2026-1783645380- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
spatie/laravel-medialibraryPackagist |
before 11.23.0 | 11.23.0 |
spatie/laravel-medialibraryTuxCare:Packagist From an advisory covering 2 CVEs |
10.15.0 up to 10.15.0-p2+tuxcare, plus listed versions 10.15.0-p1+tuxcare |
10.15.0-p2+tuxcare |
spatie/laravel-medialibraryTuxCare:Packagist From an advisory covering 2 CVEs |
9.12.4 up to 9.12.4-p2+tuxcare, plus listed versions 9.12.4-p1+tuxcare |
9.12.4-p2+tuxcare |
spatie/laravel-medialibraryPackagist |
before 11.23.0, plus listed versions 0.1.01.0.01.1.01.1.11.1.2 Show 45 moreShow less1.1.31.1.41.5.01.5.11.5.21.5.31.5.41.5.51.5.61.6.01.6.11.6.210.0.010.0.110.0.210.0.310.0.410.0.510.0.610.0.710.1.010.1.110.1.210.1.310.1.410.1.510.10.010.10.110.10.210.11.010.11.110.11.210.11.310.11.410.12.010.12.110.12.210.13.010.13.110.13.210.14.010.15.010.2.010.3.010.3.1 |
11.23.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| references | CVE List, EUVD | |
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-48557 is a high vulnerability (CVSS 8.7) in Spatie Laravel-medialibrary, published May 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.44%, the 38th percentile. Fixed in spatie/laravel-medialibrary 11.23.0.
References
github.com/spatie/laravel-medialibrary/releases/tag/11.23.0
github.com/spatie/laravel-medialibrary/pull/3939
github.com/spatie/laravel-medialibrary/commit/608ea03703d3887c46434f5dda6af56de6346aba
vulncheck.com/advisories/spatie-laravel-media-library-file-upload-restriction-bypass-via-fileadder-php
nvd.nist.gov/vuln/detail/CVE-2026-48557
github.com/advisories/GHSA-3ggm-c5m7-hfv5
github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48557.json
github.com/spatie/laravel-medialibrary
Left out here: 461 versions. The JSON record has them.