{"id":"UBUNTU-CVE-2026-33170","details":"Active Support is a toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Prior to versions 8.1.2.1, 8.0.4.1, and 7.2.3.1, `SafeBuffer#%` does not propagate the `@html_unsafe` flag to the newly created buffer. If a `SafeBuffer` is mutated in place (e.g. via `gsub!`) and then formatted with `%` using untrusted arguments, the result incorrectly reports `html_safe? == true`, bypassing ERB auto-escaping and possibly leading to XSS. Versions 8.1.2.1, 8.0.4.1, and 7.2.3.1 contain a patch.","modified":"2026-05-20T16:25:28.987192320Z","published":"2026-03-24T00:16:00Z","upstream":["CVE-2026-33170"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-33170"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-33170"},{"type":"REPORT","url":"https://github.com/rails/rails/commit/50d732af3b7c8aaf63cbcca0becbc00279b215b7"},{"type":"REPORT","url":"https://github.com/rails/rails/commit/6e8a81108001d58043de9e54a06fca58962fc2db"},{"type":"REPORT","url":"https://github.com/rails/rails/commit/c1ad0e8e1972032f3395853a5e99cea035035beb"},{"type":"REPORT","url":"https://github.com/rails/rails/releases/tag/v7.2.3.1"},{"type":"REPORT","url":"https://github.com/rails/rails/releases/tag/v8.0.4.1"},{"type":"REPORT","url":"https://github.com/rails/rails/releases/tag/v8.1.2.1"},{"type":"REPORT","url":"https://github.com/rails/rails/security/advisories/GHSA-89vf-4333-qx8v"}],"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_name":"rails","binary_version":"2:4.2.6-1ubuntu0.1~esm2"},{"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_name":"ruby-activejob","binary_version":"2:4.2.6-1ubuntu0.1~esm2"},{"binary_name":"ruby-activemodel","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_version":"2:4.2.6-1ubuntu0.1~esm2"},{"binary_version":"2:4.2.6-1ubuntu0.1~esm2","binary_name":"ruby-rails"},{"binary_name":"ruby-railties","binary_version":"2:4.2.6-1ubuntu0.1~esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-33170.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_name":"rails","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_name":"ruby-actionmailer","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_version":"2:4.2.10-0ubuntu4+esm2","binary_name":"ruby-actionpack"},{"binary_name":"ruby-actionview","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_name":"ruby-activejob","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_version":"2:4.2.10-0ubuntu4+esm2","binary_name":"ruby-activemodel"},{"binary_name":"ruby-activerecord","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_name":"ruby-activesupport","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"binary_name":"ruby-rails","binary_version":"2:4.2.10-0ubuntu4+esm2"},{"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-33170.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_name":"ruby-actioncable","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1","binary_name":"ruby-actionmailer"},{"binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1","binary_name":"ruby-actionpack"},{"binary_name":"ruby-actionview","binary_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1"},{"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_version":"2:5.2.3+dfsg-3ubuntu0.1~esm1","binary_name":"ruby-railties"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-33170.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_name":"ruby-actioncable","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-actionmailbox","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"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_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_name":"ruby-activerecord","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"binary_name":"ruby-activestorage","binary_version":"2:6.1.4.1+dfsg-8ubuntu2+esm1"},{"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_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-33170.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_version":"2:6.1.7.3+dfsg-3","binary_name":"ruby-actionpack"},{"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_version":"2:6.1.7.3+dfsg-3","binary_name":"ruby-activejob"},{"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_version":"2:6.1.7.3+dfsg-3","binary_name":"ruby-activesupport"},{"binary_version":"2:6.1.7.3+dfsg-3","binary_name":"ruby-rails"},{"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-33170.json"}},{"package":{"name":"rails","ecosystem":"Ubuntu:25.10","purl":"pkg:deb/ubuntu/rails?arch=source&distro=questing"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:6.1.7.3+dfsg-7","2:7.2.2.1+dfsg-7"],"ecosystem_specific":{"binaries":[{"binary_version":"2:7.2.2.1+dfsg-7","binary_name":"rails"},{"binary_name":"ruby-actioncable","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_version":"2:7.2.2.1+dfsg-7","binary_name":"ruby-actionmailbox"},{"binary_name":"ruby-actionmailer","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_name":"ruby-actionpack","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_version":"2:7.2.2.1+dfsg-7","binary_name":"ruby-actiontext"},{"binary_name":"ruby-actionview","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_name":"ruby-activejob","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_name":"ruby-activemodel","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_name":"ruby-activerecord","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_version":"2:7.2.2.1+dfsg-7","binary_name":"ruby-activestorage"},{"binary_name":"ruby-activesupport","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_name":"ruby-rails","binary_version":"2:7.2.2.1+dfsg-7"},{"binary_name":"ruby-railties","binary_version":"2:7.2.2.1+dfsg-7"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-33170.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_name":"ruby-actioncable","binary_version":"2:7.2.3+dfsg-2"},{"binary_name":"ruby-actionmailbox","binary_version":"2:7.2.3+dfsg-2"},{"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_name":"ruby-actiontext","binary_version":"2:7.2.3+dfsg-2"},{"binary_name":"ruby-actionview","binary_version":"2:7.2.3+dfsg-2"},{"binary_version":"2:7.2.3+dfsg-2","binary_name":"ruby-activejob"},{"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-33170.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N"},{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"},{"type":"Ubuntu","score":"medium"}]}