CVE-2026-48167: Stored XSS in Filament ImageColumn & ImageEntry Components
Filament, a popular Laravel development framework, contains a stored cross-site scripting (XSS) vulnerability in its ImageColumn and ImageEntry components. These components display database images without sanitizing the underlying data, allowing an attacker to inject malicious HTML or JavaScript. If an attacker can control the image data stored in the database—typically through an application feature that accepts user uploads or metadata—the injected code executes when other users view the affected table or schema. This is a persistence risk: the attack payload stays in the database and impacts every user who accesses that view.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.4 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-79
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-22 / 2026-06-23
NVD description (verbatim)
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.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The ImageColumn and ImageEntry components in Filament versions 4.0.0 through 4.11.4 and 5.0.0 through 5.6.4 fail to escape HTML content when rendering image data retrieved from the database. The vulnerability maps to CWE-79 (Improper Neutralization of Input During Web Page Generation). An attacker who can insert or modify image-related database records can craft payloads that execute JavaScript in the browsers of administrators, staff, or other users who view the compromised table or admin panel. The attack requires prior authentication (the CVSS vector reflects PR:L—low privilege required) and does not require user interaction at the point of view (UI:N), making it straightforward to exploit once database access is achieved.
Business impact
Stored XSS in an admin panel or dashboard framework poses significant operational and compliance risk. An attacker with low-privilege database access can escalate impact by harvesting session tokens, modifying admin settings, or defacing data visible to high-privilege users. In regulated environments, this vulnerability may trigger incident notification obligations. Teams relying on Filament for admin interfaces should assess whether image metadata is user-controllable and whether their current input validation is sufficient to prevent injection.
Affected systems
Filament versions 4.0.0 through 4.11.4 and versions 5.0.0 through 5.6.4 are vulnerable. Versions 4.11.5 and 5.6.5 and later contain the fix. Applications using Filament must verify their installed version and confirm whether ImageColumn or ImageEntry components are used with data sources that may be user-influenced (e.g., image ALT text, titles, or file paths stored in user-submitted forms).
Exploitability
The vulnerability requires an authenticated attacker with sufficient application privileges to insert or modify image-related data in the database. It does not require tricking users into clicking links or performing additional actions—the payload executes automatically when the affected page loads. In environments where multiple users access the same admin panel, a single compromised or malicious low-privilege account can affect high-privilege users, making this a privilege-escalation vector. Public exploit code has not been disclosed, but the fix is straightforward and the attack surface is clear.
Remediation
Update Filament to version 4.11.5 or later (for the 4.x line) or version 5.6.5 or later (for the 5.x line). Vendors should communicate patch availability and timelines in accordance with their support policy. As an interim control, validate and sanitize all user-supplied data before storing it in fields associated with ImageColumn or ImageEntry components. Consider implementing Content Security Policy (CSP) headers to reduce the blast radius of any stored XSS.
Patch guidance
Apply the latest available patch from the Filament maintainers. For version 4.x, upgrade to 4.11.5 or newer. For version 5.x, upgrade to 5.6.5 or newer. Test patched versions in a staging environment to ensure compatibility with your application and any custom extensions or configurations. If you maintain internal or custom Filament installations, verify against the vendor advisory that your patched version includes the HTML escaping fix for ImageColumn and ImageEntry.
Detection guidance
Review your Filament installation version against the affected range (4.0.0–4.11.4 and 5.0.0–5.6.4). Audit database schemas and application code to identify where ImageColumn and ImageEntry are used and whether the source data is user-controllable. Monitor application logs for unusual image metadata submissions or suspicious HTML/JavaScript patterns in image fields. Web Application Firewalls (WAF) may flag stored payloads if they pattern-match common XSS signatures, though they cannot prevent database-level attacks. Consider scanning image metadata and ALT text fields for script tags or event handlers.
Why prioritize this
This vulnerability merits prompt patching because it affects a widely-used Laravel framework, targets admin interfaces (where high-privilege users operate), and enables stored XSS with no user interaction required at exploitation. While the CVSS score is MEDIUM (6.4), the practical impact could be significant if your application's image metadata is user-controllable or if your admin user base includes sensitive roles. Prioritize patching if your Filament deployment exposes image data that end users or semi-trusted staff can influence.
Risk score, explained
The CVSS v3.1 score of 6.4 (MEDIUM) reflects a network-accessible vulnerability requiring low privileges and no user interaction, but with limited scope containment and confidentiality/integrity impact (no availability impact). The score does not account for context-specific factors: stored XSS in admin panels often carries higher risk than reflected XSS because the payload persists and reaches high-privilege users automatically. Organizations should consider their specific threat model and user roles when deciding priority.
Frequently asked questions
Can this vulnerability be exploited without database access?
No. An attacker must be able to insert or modify image-related data in the database. This typically requires either a compromised application account with write access, a separate database compromise, or an application feature (like bulk image import) that directly accepts user input. If your application strictly controls who can upload or modify images, the exposure is limited to that set of users.
Do we need to patch if we don't use ImageColumn or ImageEntry?
No. If your Filament installation does not use these specific components to display image data, you are not affected. Review your admin panel code and Filament component usage to confirm.
Will a WAF or CSP header protect us before we patch?
A restrictive Content Security Policy can reduce the impact of stored XSS by preventing inline script execution and restricting external resource loading, but it is not a replacement for patching. It will not prevent the vulnerability itself, only limit what an attacker can do with it. WAFs may catch some payloads but cannot prevent database-level stored attacks.
What should we check in the database to see if we've been exploited?
Search image metadata fields (ALT text, titles, file paths, or any user-input fields associated with ImageColumn/ImageEntry) for suspicious patterns such as <script>, onerror=, onclick=, or other HTML event handlers. If found, treat it as a potential breach and investigate access logs for the timeframe around the injection.
This analysis is provided for informational purposes and reflects publicly available information as of the analysis date. Exploit availability and threat actor activity evolve over time; monitor vendor advisories and security feeds for updates. Organizations should verify patch versions and compatibility against their specific Filament deployment and Laravel environment. SEC.co does not provide warranty regarding the completeness or applicability of this information to your infrastructure. Consult with your security team and the Filament maintainers before deploying patches in production. Source: NVD (public-domain), retrieved 2026-07-28. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20070MEDIUMPrivilege Escalation & Stored XSS in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2018-25384MEDIUMStored XSS in Wikidforum 2.20 Allows Authenticated Attackers to Inject Malicious Scripts
- CVE-2019-25731MEDIUMStored XSS in Zuz Music 2.1 Contact Form
- CVE-2019-25737MEDIUMStored XSS in Live Chat Unlimited 2.8.3 – Admin Session Compromise
- CVE-2019-25739MEDIUMGigToDo 1.3 Stored XSS Vulnerability in Proposal Descriptions
- CVE-2019-25742MEDIUMStored XSS in Zoner Real Estate WordPress Theme 4.1.1 – Admin Account Compromise Risk
- CVE-2019-25743MEDIUMWordPress Soliloquy Lite 2.5.6 Stored XSS Vulnerability
- CVE-2019-25744MEDIUMWordPress Popup Builder 3.49 Stored XSS Vulnerability – Exploit Prevention & Patch Guide