{"id":"CVE-2024-21549","published":"2024-12-20T05:00:01Z","modified":"2026-08-15T15:25:14Z","title":"Versions of the package spatie/browsershot before 5.0.3 are vulnerable to Improper Input Validation due to improper…","vendor":null,"product":null,"tier":"tail","description":{"text":"Versions of the package spatie/browsershot before 5.0.3 are vulnerable to Improper Input Validation due to improper URL validation in the setUrl method. An attacker can exploit this vulnerability by utilizing view-source:file://, which allows for arbitrary file reading on a local file.\r\r**Note:**\r\rThis is a bypass of the fix for [CVE-2024-21544](https://security.snyk.io/vuln/SNYK-PHP-SPATIEBROWSERSHOT-8496745).","provenance":"source","from":"CVE.org"},"cvss":{"score":8.6,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N/E:P","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.00606,"percentile":0.48956,"provenance":"source"},"cwes":[{"id":"CWE-20","name":"Improper Input Validation"}],"references":[{"url":"https://security.snyk.io/vuln/SNYK-PHP-SPATIEBROWSERSHOT-8533023","tags":[]},{"url":"https://github.com/spatie/browsershot/discussions/906","tags":[]},{"url":"https://github.com/spatie/browsershot/commit/f791ce0ae8dd99367dbfa30588ee31e1196e1728","tags":[]}],"priority":{"score":15.8,"factors":[{"name":"EPSS percentile","points":9.79},{"name":"CVSS severity","points":6.02}]},"affectedVersions":[{"vendor":"n/a","product":"spatie/browsershot","versions":["< 5.0.3"]}],"affected":[{"ecosystem":"Packagist","package":"spatie/browsershot","vulnerableRanges":["<5.0.3"],"patched":["5.0.3"],"from":["GHSA-c9f5-29f6-c35w"],"provenance":"source"}],"euvd":{"id":"EUVD-2024-3576","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-spatie-browsershot-cve-2022-41706","parents":[{"from":"CVE-2024-21544","to":"CVE-2024-21549","relation":"bypass","confidence":"high","kind":"lineage","evidence":[{"kind":"text","provenance":"source","relation":"bypass","quote":"An attacker can exploit this vulnerability by utilizing view-source:file://, which allows for arbitrary file reading on a local file. **Note:** This is a bypass of the fix for CVE-2024-21544.","from":"CVE.org","in":"CVE-2024-21549"},{"kind":"same-code","provenance":"machine","files":["src/Browsershot.php"],"commits":["https://github.com/spatie/browsershot/commit/fae8396641b961f62bd756920b14f01a4391296e","https://github.com/spatie/browsershot/commit/f791ce0ae8dd99367dbfa30588ee31e1196e1728"],"basis":"shared file"},{"kind":"similar","provenance":"machine","score":0.35,"basis":"same package + description similarity"}]},{"from":"CVE-2024-21547","to":"CVE-2024-21549","relation":"successor","confidence":"high","kind":"lineage","evidence":[{"kind":"version-step","provenance":"source","package":"Packagist:spatie/browsershot","fromFixed":"5.0.2","toFixed":"5.0.3","daysApart":2},{"kind":"same-code","provenance":"machine","files":["src/Browsershot.php"],"commits":["https://github.com/spatie/browsershot/commit/dfc3635b83dd980e5c39f8f8c73e87723b99ca01","https://github.com/spatie/browsershot/commit/f791ce0ae8dd99367dbfa30588ee31e1196e1728"],"basis":"shared function","functions":["setUrl"]}]},{"from":"CVE-2022-43984","to":"CVE-2024-21549","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["src/Browsershot.php"],"commits":["https://github.com/spatie/browsershot/commit/92cf16fc098211731f80d21687abeafbe2c457ad","https://github.com/spatie/browsershot/commit/554c3e566fde8c47ad1ac9be47eaeb9a84c4dfe2","https://github.com/spatie/browsershot/commit/f791ce0ae8dd99367dbfa30588ee31e1196e1728"],"basis":"shared function","functions":["setUrl"]}]}],"children":[{"from":"CVE-2024-21549","to":"CVE-2025-1022","relation":"successor","confidence":"high","kind":"lineage","evidence":[{"kind":"version-step","provenance":"source","package":"Packagist:spatie/browsershot","fromFixed":"5.0.3","toFixed":"5.0.5","daysApart":47},{"kind":"same-code","provenance":"machine","files":["src/Browsershot.php"],"commits":["https://github.com/spatie/browsershot/commit/f791ce0ae8dd99367dbfa30588ee31e1196e1728","https://github.com/spatie/browsershot/commit/bcfd608b264fab654bf78e199bdfbb03e9323eb7","https://github.com/spatie/browsershot/commit/e3273974506865a24fbb5b65b534d8d4b8dfbf72"],"basis":"shared function","functions":["setUrl"]}]},{"from":"CVE-2024-21549","to":"CVE-2025-1026","relation":"bypass","confidence":"high","kind":"lineage","evidence":[{"kind":"text","provenance":"source","relation":"bypass","quote":"…erable to Improper Input Validation due to improper URL validation through the setUrl method, which results in a Local File Inclusion allowing the attacker to read sensitive files. **Note:** This is a bypass of the fix for CVE-2024-21549.","from":"CVE.org","in":"CVE-2025-1026"},{"kind":"version-step","provenance":"source","package":"Packagist:spatie/browsershot","fromFixed":"5.0.3","toFixed":"5.0.5","daysApart":47},{"kind":"same-code","provenance":"machine","files":["src/Browsershot.php"],"commits":["https://github.com/spatie/browsershot/commit/f791ce0ae8dd99367dbfa30588ee31e1196e1728","https://github.com/spatie/browsershot/commit/e3273974506865a24fbb5b65b534d8d4b8dfbf72"],"basis":"shared function","functions":["setUrl"]},{"kind":"similar","provenance":"machine","score":0.88,"basis":"same package + description similarity"}]}],"packageHistory":[{"cve":"CVE-2022-43984","published":"2022-11-25","fixed":"3.57.4","kev":false},{"cve":"CVE-2024-21544","published":"2024-12-13","fixed":"5.0.1","kev":false},{"cve":"CVE-2024-21547","published":"2024-12-18","fixed":"5.0.2","kev":false},{"cve":"CVE-2024-21549","published":"2024-12-20","fixed":"5.0.3","kev":false},{"cve":"CVE-2025-1022","published":"2025-02-05","fixed":"5.0.5","kev":false},{"cve":"CVE-2025-1026","published":"2025-02-05","fixed":"5.0.5","kev":false}],"package":"Packagist:spatie/browsershot"}}