Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
🐘
🐘 Packagist
Not in CISA KEV
MEDIUM severity

Laravel Framework XSS in Blade templating engineGHSA-66hf-2p6w-jqfw

MEDIUMFix: laravel/framework#39906

GHSA-66hf-2p6w-jqfw is a medium-severity (CVSS 6.1) Cross-site Scripting (XSS) vulnerability in laravel/framework. 1 public exploit reference exists, so weaponization risk is real. A fix is available for laravel/framework — see the affected versions and patch details below.

Also known asCVE-2021-43808
Published
Updated
Affected
6 pkgs
Patched
6 / 6
Exploits
1 known
Exploitation data as of Oct 13, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

EPSS Exploitation Probability

via FIRST.org ↗
0.8%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs56th percentile — riskier than 56% of all scored CVEsHighest risk
0.00%0.44%0.88%1.33%0.4%0.8%Apr 26Aug 26Oct 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

GHSA-66hf-2p6w-jqfw by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.

Where this sits among everything scored

Of 385,987 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.

Real-World Exposure

6 pkgs affected
🐘laravel/framework🐘laravel/framework🐘laravel/framework🐘illuminate/view🐘illuminate/view🐘illuminate/view

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.

Description

A security researcher has disclosed a possible XSS vulnerability in the Blade templating engine.

Given the following two Blade templates:

resources/views/parent.blade.php:

@section('content')
<input value="{{ $value }}">
@show

resources/views/child.blade.php:

@extends('parent')

@section('content')
<input value="{{ $value }}">
@endsection

And a route like the following:

Route::get('/example', function() {
    $value = '//localhost/###parent-placeholder-040f06fd774092478d450774f5ba30c5da78acc8## onclick=location.assign(this.value);//';

    return view('child', ['value' => $value]);
});

The broken HTML element may be clicked and the user is taken to another location in their browser due to XSS. This is due to the user being able to guess the parent placeholder SHA-1 hash by trying common names of sections. If the parent template contains an exploitable HTML structure an XSS vulnerability can be exposed.

This vulnerability has been patched by determining the parent placeholder at runtime and using a random hash that is unique to each request.

Affected Packages

6 total 6 fixed
EcosystemPackageVulnerable rangeFix
🐘Packagistlaravel/frameworkall versions6.20.42composer require laravel/framework:^6.20.42
🐘Packagistlaravel/framework≥ 7.0.0&&< 7.30.67.30.6composer require laravel/framework:^7.30.6
🐘Packagistlaravel/framework≥ 8.0.0&&< 8.75.08.75.0composer require laravel/framework:^8.75.0
🐘Packagistilluminate/viewall versions6.20.42composer require illuminate/view:^6.20.42
🐘Packagistilluminate/view≥ 7.0.0&&< 7.30.67.30.6composer require illuminate/view:^7.30.6
🐘Packagistilluminate/view≥ 8.0.0&&< 8.75.08.75.0composer require illuminate/view:^8.75.0

Affected Products

1 product · 3 configurations
Application
frameworklaravel
≥ 8.0.0 && < 8.75.0
range
Exploits & PoCs
1

Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for laravel/framework, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update laravel/framework to 6.20.42 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-66hf-2p6w-jqfw is resolved across your whole dependency graph.

  3. Workarounds

    Escape or sanitise the affected output on the server side rather than relying on client-side filtering, and add a Content-Security-Policy that blocks inline script execution so injected markup cannot run even if it reaches the page.

Frequently Asked Questions

A security researcher has disclosed a possible XSS vulnerability in the Blade templating engine. Given the following two Blade templates: resources/views/parent.blade.php: ```html @section('content') <input value="{{ $value }}"> @show ``` resources/views/child.blade.php: ```html @extends('parent') @section('content') <input value="{{ $value }}"> @endsection ``` And a route like the following: ```php Route::get('/example', function() { $value = '//localhost/###parent-placeholder-040f06fd774092478d450774f5ba30c5da78acc8## onclick=location.assign(this.value);//'; return view('chi
O3 Security · Impact-Aware SCA

Is GHSA-66hf-2p6w-jqfw in your dependencies?

Find it across Packagist, including transitive dependencies.

Laravel Framework XSS in Blade templating engine