CVE-2026-54497
MediumCVSS 6.8Exploitation Probability (EPSS)
Low risk9th percentile - higher than 9% of all known CVEs
Summary
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.
Risk Assessment
An attacker can exploit this vulnerability for privilege escalation, data leakage, or impersonation, compromising Rails application security.
Recommendation
Upgrade the view_component gem to version 4.12.0 or later.
Other vulnerabilities in view_component
See all- CVE-2026-54498High
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.
- 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 instances retain render-scoped objects across calls to render_in; if the same component, collection, or spacer component instance is reused across requests, users, tenants, or threads, later renders can use stale helpers, controller, request, view_flow, format/variant details, and slot child context from an earlier render. This can cause authorization-aware components to render privileged UI for a lower-privileged user, generate links using a stale Host header, leak slot/helper state, and mix request context under concurrent rendering. This issue is fixed in version 4.12.0.

