Description
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, `DirectUploadsController` accepts arbitrary metadata from the client and persists it on the blob. Because internal flags like `identified` and `analyzed` are stored in the same metadata hash, a direct-upload client can set these flags to skip MIME detection and analysis. This allows an attacker to upload arbitrary content while claiming a safe `content_type`, bypassing any validations that rely on Active Storage's automatic content type identification. Versions 8.1.2.1, 8.0.4.1, and 7.2.3.1 contain a patch.
CVSS breakdown
CVSS 4.0
Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Confidentiality (Vulnerable System)
None
Integrity (Vulnerable System)
Low
Availability (Vulnerable System)
None
Confidentiality (Subsequent System)
None
Integrity (Subsequent System)
None
Availability (Subsequent System)
None
Affected products
- rails / activestorage>= 8.1.0.beta1, < 8.1.2.1 – >= 8.1.0.beta1, < 8.1.2.1
- rails / activestorage>= 8.0.0.beta1, < 8.0.4.1 – >= 8.0.0.beta1, < 8.0.4.1
- rails / activestorage< 7.2.3.1 – < 7.2.3.1
References
- VENDOR_ADVISORYhttps://github.com/rails/rails/security/advisories/GHSA-qcfx-2mfw-w4cg
- PATCHhttps://github.com/rails/rails/commit/707c0f1f41f067fdf96d54e99d43b28dfaae7e53
- PATCHhttps://github.com/rails/rails/commit/8fcb934caadc79c8cc4ce53287046d0f67005b3e
- PATCHhttps://github.com/rails/rails/commit/d9502f5214e2198245a4c1defe9cd02a7c8057d0
- PATCHhttps://github.com/rails/rails/releases/tag/v7.2.3.1
- PATCHhttps://github.com/rails/rails/releases/tag/v8.0.4.1
- PATCHhttps://github.com/rails/rails/releases/tag/v8.1.2.1
Updated 35m ago · 8 sources