Read the docs
TI-2023-26755 Aliases CVE-2023-49090GHSA-gxhx-g4fq-49hj

CarrierWave has a content-type allowlist bypass vulnerability, possibly leading to XSS

Priority LOW 31CWE-79Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
Required
Attack complexity
Low
Impact type
Cross-site scripting
Confidentiality · integrity · availability
High · None · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.

Summary

CarrierWave is a solution for file uploads for Rails, Sinatra and other Ruby web frameworks. CarrierWave has a Content-Type allowlist bypass vulnerability, possibly leading to XSS. The validation in `allowlisted_content_type?` determines Content-Type permissions by performing a partial match. If the `content_type` argument of `allowlisted_content_type?` is passed a value crafted by the attacker, Content-Types not included in the `content_type_allowlist` will be allowed. This issue has been patched in versions 2.2.5 and 3.0.5.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00613 49th percentileScored 2026-11-07
Fix Fixed carrierwave (carrierwaveuploader): 2.2.5, 3.0.5carrierwave (RubyGems): 3.0.5, 2.2.5

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
carrierwaveuploadercarrierwave2.2.0 to before 2.2.5; 3.0.0 to before 3.0.52.2.5, 3.0.5Patch availableCNA
—carrierwave (RubyGems)3.0.0 to before 3.0.53.0.5Patch availableGHSA-gxhx-g4fq-49hj
—carrierwave (RubyGems)before 2.2.52.2.5Patch availableGHSA-gxhx-g4fq-49hj
  • carrierwave Vendorcarrierwaveuploader Affected 2.2.0 to before 2.2.5; 3.0.0 to before 3.0.5 Fixed in 2.2.5, 3.0.5 Patch available CNA
  • carrierwave (RubyGems) Vendor— Affected 3.0.0 to before 3.0.5 Fixed in 3.0.5 Patch available GHSA-gxhx-g4fq-49hj
  • carrierwave (RubyGems) Vendor— Affected before 2.2.5 Fixed in 2.2.5 Patch available GHSA-gxhx-g4fq-49hj

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:carrierwave_project:carrierwave:*:*:*:*:*:ruby:*:*before 2.2.5; 3.0.0 to before 3.0.5Vulnerablecarrierwaveuploader
  • cpe:2.3:a:carrierwave_project:carrierwave:*:*:*:*:*:ruby:*:* Versions before 2.2.5; 3.0.0 to before 3.0.5 Vulnerable ·carrierwaveuploader

Remediation

  • Fix · CNA carrierwave (carrierwaveuploader) Fixed in 2.2.5, 3.0.5
  • Fix · GHSA-gxhx-g4fq-49hj carrierwave (RubyGems) Fixed in 3.0.5 Advisory →
  • Fix · GHSA-gxhx-g4fq-49hj carrierwave (RubyGems) Fixed in 2.2.5 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2023-49090
  2. 2026-10-03 Alias added: GHSA-gxhx-g4fq-49hj

References

  • TI-2026-32499 CarrierWave has a denylisted_content_type bypass via Unescaped Regex Metacharacters CVSS 3.1MEDIUM 6.1
  • TI-2021-04405 Code Injection vulnerability in CarrierWave CVSS 3.1HIGH 8.8
  • TI-2024-19216 CarrierWave's Content-Type allowlist bypass vulnerability which possibly leads to XSS remained CVSS 3.1MEDIUM 6.8
  • TI-2021-04388 Server-side request forgery in CarrierWave CVSS 3.1MEDIUM 4.3

Sources