CVE-2026-54498
HighCVSS 8.7Exploitation Probability (EPSS)
Low risk18th percentile - higher than 18% of all known CVEs
Summary
XSS vulnerability in the view_component framework for Ruby on Rails versions 4.0.0-4.12.0. The around_render method can return unsanitized HTML strings that bypass escaping, creating XSS risk, especially when using ViewComponent::Collection.
Risk Assessment
Risk of malicious JavaScript execution in the user's browser, which could lead to data theft and account takeover.
Recommendation
Update view_component to version 4.12.0 or later. Avoid using around_render with user-controlled data without proper sanitization.
Other vulnerabilities in view_component
See all- CVE-2026-54497Medium
Vulnerability in view_component (Ruby on Rails) versions 4.0.0-4.12.0 causes ViewComponent::Base instances to retain render-scoped objects across render_in calls. Reusing a component across requests, users, or threads can lead to stale data usage, potentially resulting in privilege escalation, link leakage, or request context mixing.
- CVE-2026-44837Medium
Vulnerability in the view_component framework (Ruby on Rails) versions 3.0.0 to 4.9.0. The system test entrypoint canonicalizes a user-controlled file path with File.realpath, then checks whether the resolved path starts with the temp directory path. This is not a safe containment check because sibling directories can share the same string prefix. Fixed in version 4.9.0.
- CVE-2026-44836Medium
view_component is a framework for building reusable, testable, and encapsulated view components in Ruby on Rails. From 3.0.0 to 4.9.0, the preview route derives an example name from the URL and calls it with public_send. The code does not verify that the requested method is one of the preview examples explicitly defined by the preview class. As a result, inherited public methods on ViewComponent::Preview are route-reachable. The most important one is render_with_template, which accepts template: and locals:. Those values can come from request params and are later passed to Rails as render template:. If previews are exposed, an attacker can render internal Rails templates that are not otherwise routable. This vulnerability is fixed in 4.9.0.
Original NVD description (English source)
view_component is a framework for building reusable, testable, and encapsulated view components in Ruby on Rails. From 4.0.0 until 4.12.0, ViewComponent::Base#around_render can return HTML-unsafe strings that bypass the escaping behavior applied to normal #call return values. This creates an XSS risk when downstream applications use around_render to wrap, replace, instrument, or conditionally return content that includes user-controlled data, and ViewComponent::Collection#render_in can amplify the issue by joining per-item results and marking the entire output html_safe, converting raw unsafe output into an ActiveSupport::SafeBuffer. This issue is fixed in version 4.12.0.

