{"id":"UBUNTU-CVE-2026-125110","details":"Rack is a modular Ruby web server interface. Prior to 2.2.25, 3.1.23, and 3.2.8, Rack::Static serves a path after Utils.clean_path_info normalization but evaluates header_rules against a path that is only URL-decoded. An unauthenticated attacker can request a known file through raw or percent-encoded dot segments and receive it without path-specific security headers such as Content-Disposition or Content-Security-Policy. Applications that do not use path-specific header_rules are not affected. This issue is fixed in versions 2.2.25, 3.1.23, and 3.2.8.","modified":"2026-11-12T23:46:34.993162255Z","published":"2026-11-12T00:00:00Z","upstream":["CVE-2026-125110"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-125110"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-125110"},{"type":"REPORT","url":"https://github.com/rack/rack/security/advisories/GHSA-wvg4-6p58-3gh3"},{"type":"REPORT","url":"https://github.com/rack/rack/commit/18a07fe553afb4d8a678d6a948cd6ba1e11e28be"},{"type":"REPORT","url":"https://github.com/rack/rack/commit/9d7f19484ffd5ed5e032678c26ee6eff96d3a0a3"},{"type":"REPORT","url":"https://github.com/rack/rack/commit/e88097ccb88be44d06d47b42daffe04929516ee4"}],"affected":[{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:14.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack?arch=source&distro=esm-infra-legacy%2Ftrusty"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.5.2-1","1.5.2-1ubuntu0.1~esm1","1.5.2-3+deb8u3ubuntu1~esm2","1.5.2-3+deb8u3ubuntu1~esm3","1.5.2-3+deb8u3ubuntu1~esm4","1.5.2-3+deb8u3ubuntu1~esm6","1.5.2-3+deb8u3ubuntu1~esm7","1.5.2-3+deb8u3ubuntu1~esm8","1.5.2-3+deb8u3ubuntu1~esm9","1.5.2-3+deb8u3ubuntu1~esm10","1.5.2-3+deb8u3ubuntu1~esm11"],"ecosystem_specific":{"binaries":[{"binary_version":"1.5.2-3+deb8u3ubuntu1~esm11","binary_name":"librack-ruby"},{"binary_version":"1.5.2-3+deb8u3ubuntu1~esm11","binary_name":"librack-ruby1.8"},{"binary_name":"librack-ruby1.9.1","binary_version":"1.5.2-3+deb8u3ubuntu1~esm11"},{"binary_name":"ruby-rack","binary_version":"1.5.2-3+deb8u3ubuntu1~esm11"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125110.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:16.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack?arch=source&distro=esm-apps%2Fxenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.5.2-4","1.6.4-2","1.6.4-3","1.6.4-3ubuntu0.1","1.6.4-3ubuntu0.2","1.6.4-3ubuntu0.2+esm1","1.6.4-3ubuntu0.2+esm2","1.6.4-3ubuntu0.2+esm4","1.6.4-3ubuntu0.2+esm5","1.6.4-3ubuntu0.2+esm6","1.6.4-3ubuntu0.2+esm7","1.6.4-3ubuntu0.2+esm8","1.6.4-3ubuntu0.2+esm9","1.6.4-3ubuntu0.2+esm10"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"1.6.4-3ubuntu0.2+esm10"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125110.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:18.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack?arch=source&distro=esm-apps%2Fbionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.6.4-4","1.6.4-4ubuntu0.1","1.6.4-4ubuntu0.2","1.6.4-4ubuntu0.2+esm1","1.6.4-4ubuntu0.2+esm2","1.6.4-4ubuntu0.2+esm4","1.6.4-4ubuntu0.2+esm5","1.6.4-4ubuntu0.2+esm6","1.6.4-4ubuntu0.2+esm7","1.6.4-4ubuntu0.2+esm8","1.6.4-4ubuntu0.2+esm9","1.6.4-4ubuntu0.2+esm10"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"1.6.4-4ubuntu0.2+esm10"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125110.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:20.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack?arch=source&distro=esm-apps%2Ffocal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.6-3","2.0.7-2","2.0.7-2ubuntu0.1","2.0.7-2ubuntu0.1+esm1","2.0.7-2ubuntu0.1+esm2","2.0.7-2ubuntu0.1+esm3","2.0.7-2ubuntu0.1+esm4","2.0.7-2ubuntu0.1+esm5","2.0.7-2ubuntu0.1+esm6","2.0.7-2ubuntu0.1+esm7","2.0.7-2ubuntu0.1+esm8","2.0.7-2ubuntu0.1+esm9","2.0.7-2ubuntu0.1+esm10"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"2.0.7-2ubuntu0.1+esm10"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125110.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:22.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack?arch=source&distro=esm-apps%2Fjammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.1.4-3","2.1.4-4","2.1.4-5","2.1.4-5ubuntu1","2.1.4-5ubuntu1+esm2","2.1.4-5ubuntu1+esm3","2.1.4-5ubuntu1+esm4","2.1.4-5ubuntu1+esm5","2.1.4-5ubuntu1.1","2.1.4-5ubuntu1.1+esm1","2.1.4-5ubuntu1.1+esm2","2.1.4-5ubuntu1.2","2.1.4-5ubuntu1.2+esm1","2.1.4-5ubuntu1.2+esm2","2.1.4-5ubuntu1.2+esm3"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"2.1.4-5ubuntu1.2+esm3"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125110.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.4-3","2.2.7-1","2.2.7-1ubuntu0.1","2.2.7-1ubuntu0.2","2.2.7-1ubuntu0.3","2.2.7-1ubuntu0.4","2.2.7-1ubuntu0.5","2.2.7-1ubuntu0.6","2.2.7-1ubuntu0.7"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"2.2.7-1ubuntu0.7"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125110.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:26.10","purl":"pkg:deb/ubuntu/ruby-rack?arch=source&distro=stonking"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.2.4-1ubuntu1","3.2.6-3"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"3.2.6-3"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125110.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:26.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack?arch=source&distro=resolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.1.16-0.1","3.1.18-1","3.1.18-1build1","3.2.4-1ubuntu1","3.2.4-1ubuntu1.1"],"ecosystem_specific":{"binaries":[{"binary_version":"3.2.4-1ubuntu1.1","binary_name":"ruby-rack"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125110.json"}}],"schema_version":"1.9.2","severity":[{"type":"Ubuntu","score":"medium"}]}