view_component: Preview Route Can Dispatch Inherited Helper Methods
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| ViewComponent | view_component | 3.0.0 to before 4.9.0 | 4.9.0 | Patch available | CNA |
| — | view_component (RubyGems) | 3.0.0 to before 4.9.0 | 4.9.0 | Patch available | GHSA-7f3r-gwc9-2995 |
- view_component VendorViewComponent Affected 3.0.0 to before 4.9.0 Fixed in 4.9.0 Patch available CNA
- view_component (RubyGems) Vendor— Affected 3.0.0 to before 4.9.0 Fixed in 4.9.0 Patch available GHSA-7f3r-gwc9-2995
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:viewcomponent:view_component:*:*:*:*:*:*:*:* | — | — | ViewComponent |
- cpe:2.3:a:viewcomponent:view_component:*:*:*:*:*:*:*:* Versions — — ·ViewComponent
Remediation
- Fix · CNA view_component (ViewComponent) Fixed in 4.9.0
- Fix · GHSA-7f3r-gwc9-2995 view_component (RubyGems) Fixed in 4.9.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-44836
- 2026-10-03 Alias added: GHSA-7f3r-gwc9-2995
References
More ViewComponent vulnerabilities
- TI-2026-39344 view_component: around_render HTML-Safety Bypass CVSS 3.1HIGH 8.7
- TI-2026-32717 view_component: System Test Entry Point Path Check Allows Sibling Directory Escape CVSS 3.1HIGH 7.5
- TI-2026-39343 view_component: Reused Component Instances Retain Stale Render Context CVSS 3.1MEDIUM 6.8
- TI-2024-14361 view_component Cross-site Scripting vulnerability CVSS 3.1MEDIUM 6.1
Sources
- CVE-2026-44836 · CVE Program
- CVE-2026-44836 · NVD
- FIRST EPSS
- GHSA-7f3r-gwc9-2995 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences