CVE-2026-84374 json
Laravel Excel writes exports outside the configured filesystem disk when given a caller-controlled path
published 2026-09-01 2 mo ago modified 2026-09-09 1 mo ago also GHSA-c7r6-vx3h-w5g2 , EUVD-2026-69706
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.8%
- EPSS 0.8% chance of exploitation in 30 days, percentile 58%
- public exploits
- 0
- none known
Summary
Laravel Excel provides supercharged Excel exports and imports in Laravel. From 3.1.8 until 3.1.70, in src/Files/Disk.php the Maatwebsite\Excel\Files\Disk::copy() method resolves the caller-controlled $destination supplied through Excel::store(), $export->store(), or storeExcel() against the process working directory with realpath() instead of the configured filesystem disk. If the path names an existing writable file, Disk::copy() opens it with fopen() in rb+ mode and uses stream_copy_to_stream(), bypassing Flysystem path confinement and allowing an attacker whose application input controls the export path to overwrite arbitrary existing files with export content. The rb+ behavior creates a non-truncating overwrite and trailing bytes when the new export is shorter, and overwriting an executable PHP file can lead to remote code execution. This issue is fixed in version 3.1.70.
Patch / fix
- packagist maatwebsite/excel 3.1.70
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 2 mo ago
Exploit prediction
0.84% chance of exploitation in the next 30 days, higher than 58% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| packagist | maatwebsite/excel | >=3.1.8, <3.1.70 |
3.1.70 |
Affected products
- SpartnerNL Laravel-Excel
Classification
References
-
github.com
/SpartnerNL/Laravel-Excel/commit/b5cafdfcf7ec63924e83303763be8fcae340f70b
web
-
github.com
/SpartnerNL/Laravel-Excel/security/advisories/GHSA-c7r6-vx3h-w5g2
web
-
github.com
/SpartnerNL/Laravel-Excel/releases/tag/3.1.70
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-84374
advisory
-
github.com
/SpartnerNL/Laravel-Excel
package
Sources
- CVE List CVE-2026-84374
- GitHub Advisory GHSA-c7r6-vx3h-w5g2
- NVD CVE-2026-84374
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.