GHSA-wf2x-8w6j-qw37

    Dashboard / Vulnerabilities / GHSA-wf2x-8w6j-qw37

    GHSA-wf2x-8w6j-qw37

    Published: 4 Jan 2024Last Modified: 10 Sept 2026

    Summary: view_component Cross-site Scripting vulnerability

    Details: ### Impact _What kind of vulnerability is it? Who is impacted?_ This is an XSS vulnerability that has the potential to impact anyone rendering a component directly from a controller with the view_component gem. Note that only components that define a [`#call` method](https://viewcomponent.org/guide/templates.html#call) (i.e. instead of using a sidecar template) are affected. The return value of the `#call` method is not sanitized and can include user-defined content. In addition, the return value of the [`#output_postamble` method](https://viewcomponent.org/api.html#output_postamble--string) is not sanitized, which can also lead to XSS issues. ### Patches _Has the problem been patched? What versions should users upgrade to?_ Versions 3.9.0 has been released and fully mitigates both the `#call` and the `#output_postamble` vulnerabilities. ### Workarounds _Is there a way for users to fix or remediate the vulnerability without upgrading?_ Sanitize the return value of `#call`, eg: ```ruby class MyComponent < ApplicationComponent def call html_escape("<div>#{user_input}</div>") end end ``` ### References _Are there any links users can visit to find out more?_ https://github.com/ViewComponent/view_component/pull/1950 ### For more information If you have any questions or comments about this advisory: Open an issue in the [github/view_component](https://github.com/github/view_component) project.

    Affected packages

    Package

    Name: view_component

    Purl: pkg:gem/view_component

    Affected ranges

    Type: ECOSYSTEM

    Events:

    Introduced- 3.0.0
    Fixed -3.9.0

    Affected versions

    3.0.0

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    GHSA-wf2x-8w6j-qw37 | CVE-DB