{"id":"CVE-2026-33202","summary":"Rails Active Storage has possible glob injection in its DiskService","details":"Active Storage allows users to attach cloud and local files in Rails applications. Prior to versions 8.1.2.1, 8.0.4.1, and 7.2.3.1, Active Storage's `DiskService#delete_prefixed` passes blob keys directly to `Dir.glob` without escaping glob metacharacters. If a blob key contains attacker-controlled input or custom-generated keys with glob metacharacters, it may be possible to delete unintended files from the storage directory. Versions 8.1.2.1, 8.0.4.1, and 7.2.3.1 contain a patch.","aliases":["GHSA-73f9-jhhh-hr5m"],"modified":"2026-04-10T05:42:39.043506Z","published":"2026-03-23T23:34:52.715Z","related":["CGA-24pc-qh57-rv75"],"database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33202.json","cwe_ids":["CWE-74"],"cna_assigner":"GitHub_M"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33202.json"},{"type":"FIX","url":"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c"},{"type":"FIX","url":"https://github.com/rails/rails/commit/955284d26e469a9c026a4eee5b21f0414ab0bccf"},{"type":"FIX","url":"https://github.com/rails/rails/commit/fa19073546360856e9f4dab221fc2c5d73a45e82"},{"type":"WEB","url":"https://github.com/rails/rails/releases/tag/v7.2.3.1"},{"type":"WEB","url":"https://github.com/rails/rails/releases/tag/v8.0.4.1"},{"type":"WEB","url":"https://github.com/rails/rails/releases/tag/v8.1.2.1"},{"type":"ADVISORY","url":"https://github.com/rails/rails/security/advisories/GHSA-73f9-jhhh-hr5m"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-33202"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/rails/rails","events":[{"introduced":"80827ca7ff33ca3026f2c74fe8249ccc6f513318"},{"fixed":"1db4b89687cc18311fc3f92623136705df24e671"}],"database_specific":{"versions":[{"introduced":"8.1.0.beta1"},{"fixed":"8.1.2.1"}]}},{"type":"GIT","repo":"https://github.com/rails/rails","events":[{"introduced":"72bc36fb47aa3a9b10149ecefc1f344d7b028d79"},{"fixed":"a79efed95797b196575a98845dc989e3106a9acb"}],"database_specific":{"versions":[{"introduced":"8.0.0.beta1"},{"fixed":"8.0.4.1"}]}},{"type":"GIT","repo":"https://github.com/rails/rails","events":[{"introduced":"0"},{"fixed":"ba76fca032a66f3716ca8a661c9ddb006acaf885"}],"database_specific":{"versions":[{"introduced":"0"},{"fixed":"7.2.3.1"}]}}],"versions":["v0.10.0","v0.10.1","v0.11.0","v0.11.1","v0.12.0","v0.13.0","v0.13.1","v0.14.1","v0.14.3","v0.9.1","v0.9.2","v0.9.3","v0.9.4","v0.9.4.1","v0.9.5","v1.1.0","v1.1.0_RC1","v1.1.1","v2.0.0","v2.0.0_PR","v2.0.0_RC1","v2.0.0_RC2","v2.0.1","v3.0.0.beta.3","v3.0.0.beta3","v3.1.0.beta1","v3.1.0.rc1","v3.2.0.rc1","v4.0.0.beta1","v4.0.0.rc1","v4.2.0.beta1","v5.0.0.beta1","v5.0.0.beta2","v5.0.0.beta4","v5.1.0.beta1","v6.0.0.beta1","v6.0.0.beta2","v6.1.0.rc1","v7.0.0.alpha1","v7.0.0.alpha2","v7.1.0.beta1","v7.2.0.beta1","v7.2.0.beta2","v7.2.0.beta3","v7.2.0.rc1","v7.2.1","v7.2.2","v7.2.3","v8.0.0","v8.0.0.beta1","v8.0.0.rc1","v8.0.0.rc2","v8.0.1","v8.0.2","v8.0.3","v8.0.4","v8.1.0","v8.1.0.beta1","v8.1.0.rc1","v8.1.1","v8.1.2"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-33202.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:U"}]}