{"id":"UBUNTU-CVE-2026-126083","details":"Action Pack is a framework for handling and responding to web requests. From 8.1 until 8.1.4.1, Since Rails 8.1.0, ActionDispatch::RemoteIp derives request.remote_ip from Rack::Request#forwarded_for, which under Rack 3 reads the RFC 7239 Forwarded header in preference to X-Forwarded-For. When a reverse proxy appends the client address to X-Forwarded-For but passes a client-supplied Forwarded header through unchanged, request.remote_ip returns an address chosen by the client, and the IP spoofing check does not raise, because it compares only Client-Ip with the forwarded addresses. An unauthenticated attacker could therefore spoof request.remote_ip, possibly bypassing IP-based access controls and rate limits keyed on the client address (including the default by: of rate_limit), and falsifying the client address in logs. An application is affected if it meets all of these requirements: Runs Rails 8.1.0 through 8.1.4 with Rack 3. Under Rack 2.2, forwarded_for reads only X-Forwarded-For. Is served behind a proxy that does not remove or overwrite a client-supplied Forwarded header. Relies on request.remote_ip for access control, rate limiting, or auditing. The fix detects a spoofed Forwarded header only when the proxy also sets X-Forwarded-For. An application whose proxy passes a client-supplied Forwarded header through and sets no X-Forwarded-For remains exposed after upgrading, and should configure the proxy to remove or overwrite Forwarded, or apply the workaround below. This issue is fixed in version 8.1.4.1.","modified":"2026-11-12T23:46:39.215790896Z","published":"2026-11-12T00:00:00Z","upstream":["CVE-2026-126083"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-126083"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-126083"},{"type":"REPORT","url":"https://github.com/rails/rails/security/advisories/GHSA-2gff-2mmg-m73p"},{"type":"REPORT","url":"https://github.com/rails/rails/commit/2a01a5ac521184419d9a92fa2c25e102e68cd227"},{"type":"REPORT","url":"https://github.com/rails/rails/releases/tag/v8.1.4.1"}],"affected":[{"package":{"name":"rails","ecosystem":"Ubuntu:Pro:16.04:LTS","purl":"pkg:deb/ubuntu/rails?arch=source&distro=esm-apps%2Fxenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:4.1.10-1","2:4.2.5-1","2:4.2.5.1-1","2:4.2.5.2-2","2:4.2.6-1","2:4.2.6-1ubuntu0.1~esm1","2:4.2.6-1ubuntu0.1~esm2"],"ecosystem_specific":{"binaries":[{"binary_version":"2:4.2.6-1ubuntu0.1~esm2","binary_name":"rails"},{"binary_version":"2:4.2.6-1ubuntu0.1~esm2","binary_name":"ruby-actionmailer"},{"binary_name":"ruby-actionpack","binary_version":"2:4.2.6-1ubuntu0.1~esm2"},{"binary_name":"ruby-actionview","binary_version":"2:4.2.6-1ubuntu0.1~esm2"},{"binary_version":"2:4.2.6-1ubuntu0.1~esm2","binary_name":"ruby-activejob"},{"binary_name":"ruby-activemodel","binary_version":"2:4.2.6-1ubuntu0.1~esm2"},{"binary_version":"2:4.2.6-1ubuntu0.1~esm2","binary_name":"ruby-activerecord"},{"binary_version":"2:4.2.6-1ubuntu0.1~esm2","binary_name":"ruby-activesupport"},{"binary_name":"ruby-rails","binary_version":"2:4.2.6-1ubuntu0.1~esm2"},{"binary_version":"2:4.2.6-1ubuntu0.1~esm2","binary_name":"ruby-railties"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-126083.json"}},{"package":{"name":"rails","ecosystem":"Ubuntu:Pro:18.04:LTS","purl":"pkg:deb/ubuntu/rails?arch=source&distro=esm-apps%2Fbionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:4.2.9-2","2:4.2.9-4","2:4.2.10-0ubuntu4","2:4.2.10-0ubuntu4+esm1","2:4.2.10-0ubuntu4+esm2"],"ecosystem_specific":{"binaries":[{"binary_version":"2:4.2.10-0ubuntu4+esm2","binary_name":"rails"},{"binary_name":"ruby-actionmailer","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_name":"ruby-actionpack","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_version":"2:4.2.10-0ubuntu4+esm2","binary_name":"ruby-actionview"},{"binary_name":"ruby-activejob","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_name":"ruby-activemodel","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_version":"2:4.2.10-0ubuntu4+esm2","binary_name":"ruby-activerecord"},{"binary_name":"ruby-activesupport","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_version":"2:4.2.10-0ubuntu4+esm2","binary_name":"ruby-rails"},{"binary_name":"ruby-railties","binary_version":"2:4.2.10-0ubuntu4+esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-126083.json"}},{"package":{"name":"rails","ecosystem":"Ubuntu:Pro:20.04:LTS","purl":"pkg:deb/ubuntu/rails?arch=source&distro=esm-apps%2Ffocal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:5.2.2.1+dfsg-1ubuntu1","2:5.2.3+dfsg-3","2:5.2.3+dfsg-3ubuntu0.1~esm1"],"ecosystem_specific":{"binaries":[{"binary_name":"rails","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1","binary_name":"ruby-actioncable"},{"binary_name":"ruby-actionmailer","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1","binary_name":"ruby-actionpack"},{"binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1","binary_name":"ruby-actionview"},{"binary_name":"ruby-activejob","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_name":"ruby-activemodel","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_name":"ruby-activerecord","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_name":"ruby-activestorage","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_name":"ruby-activesupport","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_name":"ruby-rails","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_name":"ruby-railties","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-126083.json"}},{"package":{"name":"rails","ecosystem":"Ubuntu:Pro:22.04:LTS","purl":"pkg:deb/ubuntu/rails?arch=source&distro=esm-apps%2Fjammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:6.0.3.7+dfsg-2","2:6.1.4.1+dfsg-8ubuntu2","2:6.1.4.1+dfsg-8ubuntu2+esm1"],"ecosystem_specific":{"binaries":[{"binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1","binary_name":"rails"},{"binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1","binary_name":"ruby-actioncable"},{"binary_name":"ruby-actionmailbox","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-actionmailer","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-actionpack","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-actiontext","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1","binary_name":"ruby-actionview"},{"binary_name":"ruby-activejob","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-activemodel","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1","binary_name":"ruby-activerecord"},{"binary_name":"ruby-activestorage","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-activesupport","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-rails","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-railties","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-126083.json"}},{"package":{"name":"rails","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/rails?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:6.1.7.3+dfsg-2build1","2:6.1.7.3+dfsg-3"],"ecosystem_specific":{"binaries":[{"binary_name":"rails","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_name":"ruby-actioncable","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_name":"ruby-actionmailbox","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_version":"2:6.1.7.3+dfsg-3","binary_name":"ruby-actionmailer"},{"binary_name":"ruby-actionpack","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_name":"ruby-actiontext","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_version":"2:6.1.7.3+dfsg-3","binary_name":"ruby-actionview"},{"binary_name":"ruby-activejob","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_name":"ruby-activemodel","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_name":"ruby-activerecord","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_version":"2:6.1.7.3+dfsg-3","binary_name":"ruby-activestorage"},{"binary_name":"ruby-activesupport","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_name":"ruby-rails","binary_version":"2:6.1.7.3+dfsg-3"},{"binary_name":"ruby-railties","binary_version":"2:6.1.7.3+dfsg-3"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-126083.json"}},{"package":{"name":"rails","ecosystem":"Ubuntu:26.10","purl":"pkg:deb/ubuntu/rails?arch=source&distro=stonking"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:7.2.3+dfsg-2","2:7.2.3.2+dfsg-2"],"ecosystem_specific":{"binaries":[{"binary_version":"2:7.2.3.2+dfsg-2","binary_name":"rails"},{"binary_name":"ruby-actioncable","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-actionmailbox","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-actionmailer","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_version":"2:7.2.3.2+dfsg-2","binary_name":"ruby-actionpack"},{"binary_name":"ruby-actiontext","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-actionview","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-activejob","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-activemodel","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-activerecord","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-activestorage","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-activesupport","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-rails","binary_version":"2:7.2.3.2+dfsg-2"},{"binary_name":"ruby-railties","binary_version":"2:7.2.3.2+dfsg-2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-126083.json"}},{"package":{"name":"rails","ecosystem":"Ubuntu:26.04:LTS","purl":"pkg:deb/ubuntu/rails?arch=source&distro=resolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:7.2.2.1+dfsg-7","2:7.2.2.2+dfsg-2","2:7.2.3+dfsg-2"],"ecosystem_specific":{"binaries":[{"binary_name":"rails","binary_version":"2:7.2.3+dfsg-2"},{"binary_version":"2:7.2.3+dfsg-2","binary_name":"ruby-actioncable"},{"binary_name":"ruby-actionmailbox","binary_version":"2:7.2.3+dfsg-2"},{"binary_name":"ruby-actionmailer","binary_version":"2:7.2.3+dfsg-2"},{"binary_name":"ruby-actionpack","binary_version":"2:7.2.3+dfsg-2"},{"binary_name":"ruby-actiontext","binary_version":"2:7.2.3+dfsg-2"},{"binary_name":"ruby-actionview","binary_version":"2:7.2.3+dfsg-2"},{"binary_name":"ruby-activejob","binary_version":"2:7.2.3+dfsg-2"},{"binary_name":"ruby-activemodel","binary_version":"2:7.2.3+dfsg-2"},{"binary_version":"2:7.2.3+dfsg-2","binary_name":"ruby-activerecord"},{"binary_name":"ruby-activestorage","binary_version":"2:7.2.3+dfsg-2"},{"binary_version":"2:7.2.3+dfsg-2","binary_name":"ruby-activesupport"},{"binary_name":"ruby-rails","binary_version":"2:7.2.3+dfsg-2"},{"binary_version":"2:7.2.3+dfsg-2","binary_name":"ruby-railties"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-126083.json"}}],"schema_version":"1.9.2","severity":[{"type":"Ubuntu","score":"medium"}]}