Cross-site Scripting (XSS) possible with maliciously formed HTML attribute names and values in Phlex
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- High · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.
Summary
phlex is an open source framework for building object-oriented views in Ruby. There is a potential cross-site scripting (XSS) vulnerability that can be exploited via maliciously crafted user data. This was due to improper case-sensitivity in the code that was meant to prevent these attacks. If you render an `<a>` tag with an `href` attribute set to a user-provided link, that link could potentially execute JavaScript when clicked by another user. If you splat user-provided attributes when rendering any HTML tag, malicious event attributes could be included in the output, executing JavaScript when the events are triggered by another user. Patches are available on RubyGems for all 1.x minor versions. Users are advised to upgrade. Users unable to upgrade should consider configuring a content security policy that does not allow `unsafe-inline`.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| phlex-ruby | phlex | = 1.9.0; 1.8.0 to before 1.8.2; = 1.7.0; 1.6.0 to before 1.6.2; 1.5.0 to before 1.5.2; = 1.4.0; 1.3.0 to before 1.3.3; 1.2.0 to before 1.2.2; = 1.1.0; before 1.0.1 | 1.8.2, 1.6.2, 1.5.2, 1.3.3, 1.2.2, 1.0.1 | Patch available | CNA |
| — | phlex (RubyGems) | 1.9.0 to before 1.9.1 | 1.9.1 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | 1.8.0 to before 1.8.2 | 1.8.2 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | 1.7.0 to before 1.7.1 | 1.7.1 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | 1.6.0 to before 1.6.2 | 1.6.2 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | 1.5.0 to before 1.5.2 | 1.5.2 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | 1.4.0 to before 1.4.1 | 1.4.1 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | 1.3.0 to before 1.3.3 | 1.3.3 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | 1.2.0 to before 1.2.2 | 1.2.2 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | 1.1.0 to before 1.1.1 | 1.1.1 | Patch available | GHSA-242p-4v39-2v8g |
| — | phlex (RubyGems) | before 1.0.1 | 1.0.1 | Patch available | GHSA-242p-4v39-2v8g |
- phlex Vendorphlex-ruby Affected = 1.9.0; 1.8.0 to before 1.8.2; = 1.7.0; 1.6.0 to before 1.6.2; 1.5.0 to before 1.5.2; = 1.4.0; 1.3.0 to before 1.3.3; 1.2.0 to before 1.2.2; = 1.1.0; before 1.0.1 Fixed in 1.8.2, 1.6.2, 1.5.2, 1.3.3, 1.2.2, 1.0.1 Patch available CNA
- phlex (RubyGems) Vendor— Affected 1.9.0 to before 1.9.1 Fixed in 1.9.1 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected 1.8.0 to before 1.8.2 Fixed in 1.8.2 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected 1.7.0 to before 1.7.1 Fixed in 1.7.1 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected 1.6.0 to before 1.6.2 Fixed in 1.6.2 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected 1.5.0 to before 1.5.2 Fixed in 1.5.2 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected 1.4.0 to before 1.4.1 Fixed in 1.4.1 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected 1.3.0 to before 1.3.3 Fixed in 1.3.3 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected 1.2.0 to before 1.2.2 Fixed in 1.2.2 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected 1.1.0 to before 1.1.1 Fixed in 1.1.1 Patch available GHSA-242p-4v39-2v8g
- phlex (RubyGems) Vendor— Affected before 1.0.1 Fixed in 1.0.1 Patch available GHSA-242p-4v39-2v8g
CPE configurations NVD · 5
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:phlex:phlex:*:*:*:*:*:ruby:*:* | before 1.0.1; 1.2.0 to before 1.2.2; 1.3.0 to before 1.3.3 | Vulnerable | Phlex |
| cpe:2.3:a:phlex:phlex:1.1.0:*:*:*:*:ruby:*:* | 1.1.0 | Vulnerable | Phlex |
| cpe:2.3:a:phlex:phlex:1.4.0:*:*:*:*:ruby:*:* | 1.4.0 | Vulnerable | Phlex |
| cpe:2.3:a:phlex:phlex:1.7.0:*:*:*:*:ruby:*:* | 1.7.0 | Vulnerable | Phlex |
| cpe:2.3:a:phlex:phlex:1.9.0:*:*:*:*:ruby:*:* | 1.9.0 | Vulnerable | Phlex |
- cpe:2.3:a:phlex:phlex:*:*:*:*:*:ruby:*:* Versions before 1.0.1; 1.2.0 to before 1.2.2; 1.3.0 to before 1.3.3 Vulnerable ·Phlex
- cpe:2.3:a:phlex:phlex:1.1.0:*:*:*:*:ruby:*:* Versions 1.1.0 Vulnerable ·Phlex
- cpe:2.3:a:phlex:phlex:1.4.0:*:*:*:*:ruby:*:* Versions 1.4.0 Vulnerable ·Phlex
- cpe:2.3:a:phlex:phlex:1.7.0:*:*:*:*:ruby:*:* Versions 1.7.0 Vulnerable ·Phlex
- cpe:2.3:a:phlex:phlex:1.9.0:*:*:*:*:ruby:*:* Versions 1.9.0 Vulnerable ·Phlex
Remediation
- Fix · CNA phlex (phlex-ruby) Fixed in 1.8.2, 1.6.2, 1.5.2, 1.3.3, 1.2.2, 1.0.1
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.9.1 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.8.2 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.7.1 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.6.2 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.5.2 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.4.1 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.3.3 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.2.2 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.1.1 Advisory →
- Fix · GHSA-242p-4v39-2v8g phlex (RubyGems) Fixed in 1.0.1 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2024-28199
- 2026-10-03 Alias added: GHSA-242p-4v39-2v8g
References
Patch 2
Other 4
More phlex-ruby vulnerabilities
- TI-2024-21836 Cross-site Scripting (XSS) possible with maliciously formed HTML attribute names and values in Phlex CVSS 3.1HIGH 7.1
- TI-2024-21358 phlex makes Cross-site Scripting (XSS) possible due to improper sanitisation of `href` attributes on `<a>` tags CVSS 3.1HIGH 7.1
Sources
- CVE-2024-28199 · CVE Program
- CVE-2024-28199 · NVD
- FIRST EPSS
- GHSA-242p-4v39-2v8g · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences