Cloudanix VulnDB

CVE-2022-44566

High · 7.5

CVSS

7.5

EPSS

1.3%

Published

Feb 9, 2023

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

Some Rails-based web applications may be vulnerable to publicly known attacks unless they are updated to a patched version.

Exploit Available
Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Other
Component
Application
Class
Other
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The provided metadata identifies a flaw in the Rails codebase fixed by upstream commit c443466a99f8ed951605fb4993a01de5e41349a4, but does not include a detailed vulnerability description. Treat this as a remotely reachable Rails framework defect until proven otherwise: an attacker may be able to trigger vulnerable framework behavior through crafted application input or HTTP requests, potentially causing denial of service, unexpected request handling, or other application-level security impact depending on which Rails components are used. The issue has public exploit maturity marked as ExploitAvailable, while EPSS is currently low at 0.01265 and it is not listed in CISA KEV.

Why it matters to the business

Applications built on affected Rails revisions may be exposed to publicly known exploit techniques, creating risk of service instability, degraded availability, or security control bypass depending on application configuration and routing. Because Rails is commonly used as a foundational web framework, the operational impact can be broader than a single feature: many application endpoints may inherit the vulnerable behavior. The vulnerability is not currently in CISA KEV and is not identified as ransomware-associated in the supplied data, but it has been public since 2023-02-09 and exploit availability means unpatched internet-facing applications should still be prioritized for remediation.

How an attack unfolds

An attacker first identifies a web application running an affected Rails revision or a downstream build that contains the vulnerable code. They then send specially crafted HTTP requests or application inputs intended to exercise the vulnerable Rails framework path. If the application routes or middleware stack reaches the affected code, exploitation may result in abnormal application behavior such as request processing failures, excessive resource consumption, or other impact consistent with the underlying Rails flaw. Because the supplied threat actor value appears to reference the unrelated HTTP/2 Rapid Reset attack label rather than a named actor, defenders should not assume actor attribution from that field alone; instead, focus on evidence of suspicious request patterns and application errors around Rails request handling.

How to fix it

Upgrade Rails to a version or revision that contains the upstream fix. For source-based deployments tracking rails/rails from Git, ensure the code includes commit c443466a99f8ed951605fb4993a01de5e41349a4 or a later commit that contains it. Rebuild and redeploy applications after updating dependencies, then restart application servers and background workers so the patched framework code is loaded. If immediate upgrade is not possible, reduce exposure by placing affected applications behind a well-configured reverse proxy or WAF, enforcing request size and rate limits, disabling unused routes or middleware, and limiting direct internet access to administrative or low-traffic endpoints. Because the provided fixed-version data is commit-based rather than gem-version-based, dependency owners should map their Rails gem version to the upstream advisory or patched release used by their package manager.

How to confirm the fix worked

Confirm the deployed Rails source or packaged gem contains commit c443466a99f8ed951605fb4993a01de5e41349a4 or a later patched release. Validate dependency manifests and runtime state, not just repository files: check Gemfile.lock, container images, build artifacts, and running application instances. Run application regression tests against routes that exercise Rails request parsing, middleware, controllers, and any component identified by the upstream advisory. If an exploit test is available and authorized, run it only in a controlled staging environment and verify that patched systems no longer exhibit the vulnerable behavior. Confirm all production instances were restarted or rolled so no old Rails code remains in memory.

Typical attack path

  1. Fingerprint the target application to determine whether it appears to be built with Ruby on Rails or exposes Rails-specific behavior, headers, error pages, assets, or routes.
  2. Map reachable endpoints and request methods that are likely to pass through the vulnerable Rails framework component.
  3. Send crafted HTTP requests or parameters designed to trigger the vulnerable Rails code path.
  4. Observe response timing, error behavior, resource consumption, or application instability to confirm exploitability.
  5. Repeat or automate the request pattern to cause operational impact, probe for secondary effects, or use the condition as part of a broader attack chain.

How to detect it

Review web server, reverse proxy, load balancer, CDN/WAF, and Rails application logs for unusual request patterns, repeated malformed requests, spikes in 4xx/5xx responses, request timeouts, worker restarts, and application exceptions occurring before remediation. Useful sources include NGINX or Apache access/error logs, cloud load balancer logs, WAF events, Rails production.log, application performance monitoring traces, container restart events, process supervisor logs, and host metrics for CPU, memory, and request latency. Because the supplied metadata does not describe the exact vulnerable input, detection should focus on behavioral evidence: repeated probing against many endpoints, abnormal parameter/header sizes, identical requests causing exceptions, bursts of requests followed by Rails worker crashes, and source IPs generating disproportionate error rates. Compare activity before and after patching to identify requests that no longer produce abnormal behavior. If packet capture or WAF full-request logging is available, preserve samples of suspicious requests for reproduction in a controlled environment.

  • Rails application log entries with repeated 500 responses from the same source IP in a short time window
  • Rails application log entries containing "Completed 500 Internal Server Error" correlated with repeated identical request paths
  • Rails application log entries containing "ActionController::RoutingError" at unusually high volume from the same source IP
  • Rails application log entries containing "ActionDispatch::Http::Parameters::ParseError" at unusually high volume
  • Rails application log entries containing "Rack::Timeout::RequestTimeoutException"
  • Rails application log entries containing "PumaWorkerKiller" or worker restart messages after bursts of suspicious requests
  • Web server access logs showing repeated HTTP 400, 408, 429, 499, 500, 502, 503, or 504 responses from the same source IP against Rails endpoints
  • Reverse proxy or load balancer logs showing request timeout spikes against a Rails application
  • WAF events showing repeated malformed HTTP requests, oversized parameters, or abnormal header patterns targeting Rails routes
  • Gemfile.lock entries showing vulnerable Rails code without the upstream fix commit c443466a99f8ed951605fb4993a01de5e41349a4

What your security team should do

  • Inventory Rails applications and identify any deployments built from rails/rails revisions prior to commit c443466a99f8ed951605fb4993a01de5e41349a4.
  • Prioritize internet-facing Rails applications and high-traffic APIs for upgrade or compensating controls because exploit code is reported available.
  • Update source-based Rails deployments to include commit c443466a99f8ed951605fb4993a01de5e41349a4 or later, then rebuild and redeploy all affected services.
  • Review edge controls for request rate limits, request body limits, header limits, timeout settings, and anomaly blocking rules.
  • Increase monitoring for unusual Rails errors, request spikes, timeout patterns, worker crashes, and repeated suspicious requests from the same source networks.
  • Do not rely on the supplied HTTP/2 Rapid Reset label as actor attribution; validate whether any observed activity matches this Rails issue versus unrelated HTTP/2 abuse.
  • Document the patched version or commit in vulnerability management records and verify with runtime evidence from production images or hosts.

The record

A denial of service vulnerability present in ActiveRecord's PostgreSQL adapter <7.0.4.1 and <6.1.7.1. When a value outside the range for a 64bit signed integer is provided to the PostgreSQL connection adapter, it will treat the target column type as numeric. Comparing integer values against numeric values can result in a slow sequential scan resulting in potential Denial of Service.

Affected packages

Ecosystem Package Introduced Fixed
RubyGems activerecord 0 6.1.7.1
RubyGems activerecord 7.0.0 7.0.4.1
Debian:11 rails 0 No fix
Debian:12 rails 0 2:6.1.7.3+dfsg-1
Debian:13 rails 0 2:6.1.7.3+dfsg-1
Red Hat:satellite:6.14::el8 foreman 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-cli 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-debug 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-dynflow-sidekiq 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-ec2 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-journald 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-libvirt 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-openstack 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-ovirt 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-postgresql 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-redis 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-service 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-telemetry 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 foreman-vmware 0 0:3.7.0.9-1.el8sat
Red Hat:satellite:6.14::el8 puppet-agent 0 0:7.26.0-3.el8sat
Red Hat:satellite:6.14::el8 puppetserver 0 0:7.11.0-1.el8sat
Red Hat:satellite:6.14::el8 python-django 0 0:3.2.21-1.el8pc
Red Hat:satellite:6.14::el8 python-future 0 0:0.18.3-1.el8pc
Red Hat:satellite:6.14::el8 python-gitpython 0 0:3.1.32-1.el8pc
Red Hat:satellite:6.14::el8 python-pulp-ansible 0 1:0.16.0-1.el8pc
Red Hat:satellite:6.14::el8 python-requests 0 0:2.31.0-1.el8pc
Red Hat:satellite:6.14::el8 python-sqlparse 0 0:0.4.4-1.el8pc
Red Hat:satellite:6.14::el8 python39-django 0 0:3.2.21-1.el8pc
Red Hat:satellite:6.14::el8 python39-future 0 0:0.18.3-1.el8pc
Red Hat:satellite:6.14::el8 python39-gitpython 0 0:3.1.32-1.el8pc
Red Hat:satellite:6.14::el8 python39-pulp-ansible 0 1:0.16.0-1.el8pc
Red Hat:satellite:6.14::el8 python39-requests 0 0:2.31.0-1.el8pc
Red Hat:satellite:6.14::el8 python39-sqlparse 0 0:0.4.4-1.el8pc
Red Hat:satellite:6.14::el8 rubygem-actionpack 0 0:6.1.7.3-1.el8sat
Red Hat:satellite:6.14::el8 rubygem-activerecord 0 0:6.1.7.3-1.el8sat
Red Hat:satellite:6.14::el8 rubygem-activesupport 0 0:6.1.7.3-1.el8sat
Red Hat:satellite:6.14::el8 rubygem-git 0 0:1.18.0-1.el8sat
Red Hat:satellite:6.14::el8 rubygem-globalid 0 0:1.1.0-1.el8sat
Red Hat:satellite:6.14::el8 rubygem-kubeclient 0 0:4.10.1-1.el8sat
Red Hat:satellite:6.14::el8 rubygem-rack 0 0:2.2.7-1.el8sat
Red Hat:satellite:6.14::el8 yggdrasil-worker-forwarder 0 0:0.0.3-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-cli 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-debug 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-dynflow-sidekiq 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-ec2 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-journald 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-libvirt 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-openstack 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-ovirt 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-postgresql 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-redis 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-service 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-telemetry 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 foreman-vmware 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_capsule:6.14::el8 puppet-agent 0 0:7.26.0-3.el8sat
Red Hat:satellite_capsule:6.14::el8 puppetserver 0 0:7.11.0-1.el8sat
Red Hat:satellite_capsule:6.14::el8 python-django 0 0:3.2.21-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python-future 0 0:0.18.3-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python-gitpython 0 0:3.1.32-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python-pulp-ansible 0 1:0.16.0-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python-requests 0 0:2.31.0-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python-sqlparse 0 0:0.4.4-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python39-django 0 0:3.2.21-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python39-future 0 0:0.18.3-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python39-gitpython 0 0:3.1.32-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python39-pulp-ansible 0 1:0.16.0-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python39-requests 0 0:2.31.0-1.el8pc
Red Hat:satellite_capsule:6.14::el8 python39-sqlparse 0 0:0.4.4-1.el8pc
Red Hat:satellite_capsule:6.14::el8 rubygem-rack 0 0:2.2.7-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-cli 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-debug 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-dynflow-sidekiq 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-ec2 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-journald 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-libvirt 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-openstack 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-ovirt 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-postgresql 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-redis 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-service 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-telemetry 0 0:3.7.0.9-1.el8sat
Red Hat:satellite_utils:6.14::el8 foreman-vmware 0 0:3.7.0.9-1.el8sat
SUSE:Linux Enterprise High Availability Extension 15 SP1 rubygem-activerecord-5_1 0 5.1.4-150000.5.6.1
SUSE:Linux Enterprise High Availability Extension 15 SP2 rubygem-activerecord-5_1 0 5.1.4-150000.5.6.1
SUSE:Linux Enterprise High Availability Extension 15 SP3 rubygem-activerecord-5_1 0 5.1.4-150000.5.6.1
SUSE:Linux Enterprise High Availability Extension 15 SP4 rubygem-activerecord-5_1 0 5.1.4-150000.5.6.1
SUSE:OpenStack Cloud Crowbar 8 rubygem-activerecord-4_2 0 4.2.9-6.9.1
SUSE:OpenStack Cloud Crowbar 8 rubygem-activerecord-4_2 0 4.2.9-6.12.1
SUSE:OpenStack Cloud Crowbar 9 rubygem-activerecord-4_2 0 4.2.9-6.9.1
SUSE:OpenStack Cloud Crowbar 9 rubygem-activerecord-4_2 0 4.2.9-6.12.1
Ubuntu:20.04:LTS rails 0 No fix
Ubuntu:22.04:LTS rails 0 No fix
Ubuntu:24.04:LTS rails 0 No fix
Ubuntu:24.10 rails 0 No fix
Ubuntu:25.04 rails 0 No fix
Ubuntu:25.10 rails 0 No fix
Ubuntu:Pro:16.04:LTS rails 0 No fix
Ubuntu:Pro:18.04:LTS rails 0 No fix
Ubuntu:Pro:20.04:LTS rails 0 No fix
Ubuntu:Pro:22.04:LTS rails 0 No fix
gem activerecord 7.0.0 7.0.4.1
openSUSE:Leap 15.4 rubygem-activerecord-5_1 0 5.1.4-150000.5.6.1
openSUSE:Tumbleweed rubygem-activerecord-7.0 0 7.0.4.1-1.1
openSUSE:Tumbleweed rubygem-activerecord-7.0 0 7.0.8.4-1.1
openSUSE:Tumbleweed rubygem-activerecord-7.0 0 7.0.8.6-1.3

Related vulnerabilities