CVE-2024-28199 json
Cross-site Scripting (XSS) possible with maliciously formed HTML attribute names and values in Phlex
published 2024-03-11 2 y ago modified 2026-09-10 1 mo ago also GHSA-242p-4v39-2v8g , EUVD-2024-0782
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 49%
- public exploits
- 0
- none known
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`.
Patch / fix
- rubygems phlex 1.0.1, 1.1.1, 1.2.2, 1.3.3, 1.4.1, 1.5.2, 1.6.2, 1.7.1, 1.8.2, 1.9.1
- phlex phlex 1.0.1, 1.2.2, 1.3.3
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.60% chance of exploitation in the next 30 days, higher than 49% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N |
| NVD | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| GitHub | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| rubygems | phlex | >=1.9.0, <1.9.1 >=1.8.0, <1.8.2 >=1.7.0, <1.7.1 >=1.6.0, <1.6.2 >=1.5.0, <1.5.2 >=1.4.0, <1.4.1 >=1.3.0, <1.3.3 >=1.2.0, <1.2.2 >=1.1.0, <1.1.1 <1.0.1 |
1.9.1 1.8.2 1.7.1 1.6.2 1.5.2 1.4.1 1.3.3 1.2.2 1.1.1 1.0.1 |
Affected products
- phlex-ruby phlex
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/phlex-ruby/phlex/commit/aa50c604cdee1d0ce7ef068a4c66cbd5d43f96a1
web, patch
-
github.com
/phlex-ruby/phlex/security/advisories/GHSA-242p-4v39-2v8g
web, patch, vendor-advisory
-
developer.mozilla.org
/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
web, technical-description
-
developer.mozilla.org
/en-US/docs/Web/HTTP/Headers/Content-Security-Policy#unsafe-inline
web, technical-description
-
nvd.nist.gov
/vuln/detail/CVE-2024-28199
advisory
-
github.com
/phlex-ruby/phlex
package
-
github.com
/rubysec/ruby-advisory-db/blob/master/gems/phlex/CVE-2024-28199.yml
web
Sources
- CVE List CVE-2024-28199
- GitHub Advisory GHSA-242p-4v39-2v8g
- NVD CVE-2024-28199
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.