Register for the AI for Security Summit: Join Figma, Perplexity & Wiz

CVE-2026-33176
Ruby vulnerability analysis and mitigation

Overview

CVE-2026-33176 is a Denial of Service (DoS) vulnerability in the Active Support number helpers component of Ruby on Rails. The flaw allows unauthenticated remote attackers to trigger excessive memory allocation and CPU consumption by submitting strings containing scientific notation (e.g., 1e10000) to number helper functions, which Ruby's BigDecimal then expands into extremely large decimal representations. Affected versions include Active Support/Rails prior to 7.2.3.1, 8.0.x prior to 8.0.4.1, and 8.1.x prior to 8.1.2.1. The vulnerability was disclosed on March 23, 2026, and carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 base score of 6.6 (Medium) (GitHub Advisory, Feedly).

Technical details

The root cause is uncontrolled resource consumption (CWE-400) and allocation of resources without limits or throttling (CWE-770) in the NumberConverter class within activesupport/lib/active_support/number_helper/number_converter.rb. When a string input is passed to number helpers such as number_to_currency or number_to_percentage, the code previously called BigDecimal(number, exception: false) without filtering scientific notation — allowing a compact input like 1e10000 to be expanded into a decimal string with tens of thousands of digits before formatting. The fix, applied across three patch commits, adds a regex guard (unless number.to_s.match?(/[de]/i)) to reject strings containing scientific notation characters before passing them to BigDecimal (Rails Commit, GitHub Advisory). Exploitation requires that user-controlled input reaches a number helper function, which is a common pattern in Rails applications that display user-supplied numeric data.

Impact

Successful exploitation causes excessive memory allocation and CPU consumption on the affected Rails server, potentially rendering the application unresponsive and resulting in a denial of service condition. There is no impact on confidentiality or data integrity — the vulnerability is limited to availability. Applications that pass untrusted user input to Active Support number helpers (e.g., number_to_currency, number_to_percentage, number_to_human) are at risk, and repeated requests could sustain resource exhaustion and disrupt service for all users (GitHub Advisory, Feedly).

Exploitability

No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at this time (Feedly). The vulnerability was responsibly disclosed via HackerOne by researcher "manun" (GitHub Advisory). The EPSS score is approximately 0.016% (very low probability of exploitation in the near term). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Despite requiring no authentication or user interaction, the low EPSS and absence of weaponized exploits suggest limited immediate risk.

Exploitation steps

  1. Identify target endpoints: Locate a Rails application endpoint that accepts numeric user input and passes it to an Active Support number helper function (e.g., a price display, percentage calculator, or currency formatter).
  2. Craft malicious payload: Prepare a string containing scientific notation that BigDecimal will expand into an extremely large decimal, such as 1e10000 or 1e100000.
  3. Submit the payload: Send an HTTP request (GET or POST) to the vulnerable endpoint with the crafted string as the numeric parameter value (e.g., amount=1e10000).
  4. Trigger resource exhaustion: The server's NumberConverter passes the string to BigDecimal, which expands it into a massive decimal representation; subsequent formatting operations consume excessive memory and CPU.
  5. Repeat for sustained DoS: Send repeated requests with such payloads to maintain resource pressure and prevent the server from recovering, causing denial of service for legitimate users (GitHub Advisory, Rails Commit).

Indicators of compromise

  • Network: Repeated HTTP requests to application endpoints that accept numeric parameters, containing values matching scientific notation patterns (e.g., 1e10000, 1E99999, values with d or e characters in numeric fields).
  • Logs: Rails application logs showing high-latency or timed-out requests to number-formatting endpoints; web server access logs with numeric parameters containing e, E, or d characters in otherwise numeric fields.
  • Process: Sustained high CPU and memory usage by the Rails/Ruby worker processes (e.g., ruby, puma, unicorn) without a corresponding spike in legitimate traffic; out-of-memory (OOM) kills of Rails worker processes.

Mitigation and workarounds

Upgrade Active Support/Rails to the patched versions: 7.2.3.1, 8.0.4.1, or 8.1.2.1 depending on the version line in use (Rails Release, GitHub Advisory). As a temporary workaround prior to patching, implement input validation at the application layer to reject or sanitize numeric strings containing scientific notation characters (e, E, d) before passing them to number helper functions. Additionally, consider applying rate limiting on endpoints that accept numeric user input to reduce the impact of potential DoS attempts during the patching window. IBM products including Aspera Faspex, Aspera Enterprise WebApps, Aspera Shares, CloudPak for AIOps, and License Metric Tool have also released security bulletins addressing this vulnerability (IBM Aspera Faspex).

Community reactions

The Rails team published an official release announcement for versions 7.2.3.1, 8.0.4.1, and 8.1.2.1 on March 23, 2026, bundling fixes for multiple CVEs including CVE-2026-33176 (Rails Blog). The vulnerability was noted on social media platforms including Mastodon and Bluesky by security tracking accounts shortly after disclosure. Red Hat tracked the issue and issued errata (RHSA-2026:14835, RHSA-2026:14873, RHSA-2026:14874) for affected products (Red Hat CVE). Community reaction was measured, consistent with the low-severity rating and absence of active exploitation.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

rails

Affected

sid

rails: 2:7.2.3.1+dfsg-1

Fixed

trixie

rails

Affected

Ubuntu

Unknown

bionic (esm-apps)

rails

Unknown

devel

rails

Unknown

focal (esm-apps)

rails

Unknown

jammy

rails

Unknown

jammy (esm-apps)

rails

Unknown

noble

rails

Unknown

noble (esm-apps)

rails

Unknown

resolute

rails

Unknown

RHEL / CentOS

Unknown

SourceThis report was generated using AI

Related Ruby vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-50276HIGH7.5
  • Ruby logoRuby
  • datadog
NoYesSep 14, 2026
CVE-2026-70658HIGH7.4
  • Ruby logoRuby
  • pay
NoNoSep 14, 2026
CVE-2026-44163MEDIUM5.3
  • Ruby logoRuby
  • fluent-plugin-opentelemetry
NoYesSep 15, 2026
CVE-2026-44282MEDIUM4.8
  • Ruby logoRuby
  • decidim-elections
NoYesSep 15, 2026
CVE-2026-44162LOW2.7
  • Ruby logoRuby
  • fluent-plugin-s3
NoYesSep 14, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management