Advisory Database
  • Advisories
  • Dependency Scanning
  1. gem
  2. ›
  3. phlex
  4. ›
  5. CVE-2024-28199

CVE-2024-28199: Cross-site Scripting (XSS) possible with maliciously formed HTML attribute names and values in Phlex

March 12, 2024 (updated March 14, 2024)

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.

Impact

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.

a(href: user_profile) { "Profile" }

If you splat user-provided attributes when rendering any HTML or SVG tag, malicious event attributes could be included in the output, executing JavaScript when the events are triggered by another user.

h1(**JSON.parse(user_attributes))

Patches

Patches are available on RubyGems for all 1.x minor versions. The patched versions are:

  • 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

If you are on main, it has been patched since aa50c60

Workarounds

Configuring a Content Security Policy that does not allow unsafe-inline would effectively prevent this vulnerability from being exploited.

References

In addition to upgrading to a patched version of Phlex, we strongly recommend configuring a Content Security Policy header that does not allow unsafe-inline. Here’s how you can configure a Content Security Policy header in Rails. https://guides.rubyonrails.org/security.html#content-security-policy-header

References

  • developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
  • developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
  • github.com/advisories/GHSA-242p-4v39-2v8g
  • github.com/phlex-ruby/phlex
  • github.com/phlex-ruby/phlex/commit/aa50c604cdee1d0ce7ef068a4c66cbd5d43f96a1
  • github.com/phlex-ruby/phlex/security/advisories/GHSA-242p-4v39-2v8g
  • github.com/rubysec/ruby-advisory-db/blob/master/gems/phlex/CVE-2024-28199.yml
  • nvd.nist.gov/vuln/detail/CVE-2024-28199

Code Behaviors & Features

Detect and mitigate CVE-2024-28199 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 1.0.1, all versions starting from 1.1.0 before 1.1.1, version 1.1.0, all versions starting from 1.2.0 before 1.2.2, all versions starting from 1.3.0 before 1.3.3, all versions starting from 1.4.0 before 1.4.1, version 1.4.0, all versions starting from 1.5.0 before 1.5.2, all versions starting from 1.6.0 before 1.6.2, all versions starting from 1.7.0 before 1.7.1, version 1.7.0, all versions starting from 1.8.0 before 1.8.2, all versions starting from 1.9.0 before 1.9.1, version 1.9.0

Fixed versions

  • 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

Solution

Upgrade to versions 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 or above.

Impact 7.1 HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N

Learn more about CVSS

Weakness

  • CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Source file

gem/phlex/CVE-2024-28199.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Wed, 14 May 2025 12:15:34 +0000.