Skip to main content

Filament CVE-2026-48167

| EUVDEUVD-2026-38395 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-06-22 GitHub_M GHSA-3fc8-8hp6-6jr4
6.4
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI
6.4 MEDIUM

PR:L reflects required write access to the affected column; S:C captures cross-user browser execution; UI:N applies because stored payload fires automatically on page load.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Jun 22, 2026 - 23:02 EUVD
Analysis Generated
Jun 22, 2026 - 22:30 vuln.today

DescriptionCVE.org

Filament is a collection of full-stack components for accelerated Laravel development. From 4.0.0 until 4.11.5 and 5.6.5, the ImageColumn and ImageEntry components render raw database values without escaping HTML. Where the data passed to these components isn't validated, an attacker could plant malicious HTML or JavaScript and achieve stored XSS that executes for users who view the table or schema. This vulnerability is fixed in 4.11.5 and 5.6.5.

AnalysisAI

Stored cross-site scripting in Filament's ImageColumn and ImageEntry components allows low-privileged authenticated attackers to plant malicious HTML or JavaScript into database-backed image fields, which then executes in the browsers of any user who views the affected table or schema. Affected versions span 4.0.0 through the pre-fix releases across both the v4 and v5 branches of this widely-used Laravel admin panel framework. Vendor-released patches exist at versions 4.11.5 and 5.6.5; no public exploit code or CISA KEV listing has been identified at time of analysis.

Technical ContextAI

Filament (cpe:2.3:a:filamentphp:filament:*:*:*:*:*:*:*:*) is a full-stack Laravel UI component library providing table, form, and schema components for building admin panels. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically in two rendering components - ImageColumn (used in tables) and ImageEntry (used in infolist/detail schemas) - which pass raw database column values into the HTML output without applying PHP's htmlspecialchars or Blade's double-curly escaping. Because Laravel Blade's {!! !!} unescaped syntax or equivalent raw rendering is used internally, any attacker-controlled string stored in the underlying database column is reflected verbatim into page markup, making this a stored (persistent) XSS vector. The CVSS Scope:Changed metric correctly captures that the impact escapes the application's own security boundary and executes in the victim user's browser context.

RemediationAI

Upgrade to Filament 4.11.5 (for v4 branch users) or 5.6.5 (for v5 branch users) - these are the vendor-confirmed fixed releases per the GitHub Security Advisory GHSA-3fc8-8hp6-6jr4 at https://github.com/filamentphp/filament/security/advisories/GHSA-3fc8-8hp6-6jr4. Run composer update filament/filament within the appropriate version constraint to pull the fix. If immediate upgrade is not possible, the primary compensating control is to enforce strict server-side input validation on any field that populates ImageColumn or ImageEntry columns - reject values containing HTML tags or JavaScript URI schemes (e.g., javascript:) before persistence. Restricting write access to the affected database columns to trusted roles only reduces the attacker pool. Note that client-side or WAF-based XSS filtering is not a reliable substitute for output escaping and should not be treated as a permanent mitigation.

Share

CVE-2026-48167 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy