Filament has unvalidated ColorColumn and ColorEntry values that can be used for Cross-site Scripting
Description
Filament is a collection of full-stack components for Laravel development. Versions of Filament from v3.0.0 through v3.2.114 are affected by a cross-site scripting (XSS) vulnerability. If values passed to a ColorColumn or ColumnEntry are not valid and contain a specific set of characters, applications are vulnerable to XSS attack against a user who opens a page on which a color column or entry is rendered. Filament v3.2.115 fixes this issue.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Unvalidated color values passed to ColorColumn/ColorEntry in Filament v3.0.0–v3.2.114 can be used for stored XSS via Laravel's @style directive.
Vulnerability
A cross-site scripting (XSS) vulnerability exists in Filament versions v3.0.0 through v3.2.114. If a user-supplied value passed to a ColorColumn or ColorEntry (used in tables and infolists) is not a valid color and contains a specific set of characters, the value is rendered unsanitized. This occurs because the value is directly interpolated into the @style() Blade directive without escaping special characters [1][2].
Exploitation
The attack requires an attacker to be able to store a malicious value in the database that is later rendered by a ColorColumn or ColorEntry. For example, a value like blue;">alert('XSS')</script style=" would be inserted into the generated HTML as part of a style attribute. No authentication is mentioned in the advisory, but the attacker must have the ability to inject such values (e.g., via a form or data import). The exploit is stored XSS — the malicious code executes when a victim views the page with the color component [2].
Impact
An attacker who successfully exploits this vulnerability can execute arbitrary JavaScript in the context of a victim's session. This can lead to data theft, session hijacking, or other client-side attacks. The advisory confirms that the vulnerability affects both ColorColumn (reported by Mattis, @sv-LayZ) and ColorEntry [2].
Mitigation
The vulnerability is fixed in Filament v3.2.115. The fix uses Laravel's e() helper to escape special characters in the @style() directive for both components [1][4]. Users are strongly advised to upgrade. The project also published additional color validation documentation to encourage best practices [2].
AI Insight generated on May 20, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
filament/tablesPackagist | >= 3.0.0, < 3.2.115 | 3.2.115 |
filament/infolistsPackagist | >= 3.0.0, < 3.2.115 | 3.2.115 |
Affected products
1- Range: >= 3.0.0, < 3.2.115
Patches
1df7989352464Merge commit from fork
2 files changed · +2 −2
packages/infolists/resources/views/components/color-entry.blade.php+1 −1 modified@@ -43,7 +43,7 @@ 'cursor-pointer' => $itemIsCopyable, ]) @style([ - "background-color: {$state}" => $state, + 'background-color: ' . e($state) => $state, ]) ></div> @endforeach
packages/tables/resources/views/columns/color-column.blade.php+1 −1 modified@@ -45,7 +45,7 @@ 'cursor-pointer' => $itemIsCopyable, ]) @style([ - "background-color: {$state}" => $state, + 'background-color: ' . e($state) => $state, ]) ></div> @endforeach
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4- github.com/advisories/GHSA-9h9q-qhxg-89xrghsaADVISORY
- github.com/filamentphp/filament/commit/df7989352464d08eda5837ef50f9997fad902316ghsax_refsource_MISCWEB
- github.com/filamentphp/filament/releases/tag/v3.2.115ghsax_refsource_MISCWEB
- github.com/filamentphp/filament/security/advisories/GHSA-9h9q-qhxg-89xrghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.