CVE-2026-59992
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
Summary
Tina is a headless content management system. Prior to next-tinacms-s3 23.0.4, next-tinacms-dos 23.0.4, next-tinacms-azure 14.0.4, and next-tinacms-cloudinary 26.0.4, the first-party production media adapters pass attacker-controlled object keys to storage SDK upload and delete operations without enforcing the operator's configured mediaRoot. In packages/next-tinacms-s3/src/handlers.ts, createMediaHandler accepts req.query.key for a signed PutObject URL and the DELETE path uses req.query.media as the DeleteObjectCommand key. The same missing key-boundary check exists in packages/next-tinacms-dos/src/handlers.ts, packages/next-tinacms-azure/src/handlers.ts, and packages/next-tinacms-cloudinary/src/handlers.ts. An authenticated CMS editor can therefore create or delete objects anywhere the deployment's storage credential can reach, including other tenants' or non-media objects. These issues are fixed in next-tinacms-s3 23.0.4, next-tinacms-dos 23.0.4, next-tinacms-azure 14.0.4, and next-tinacms-cloudinary 26.0.4.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| tinacms | tinacms | < 23.0.4 | affected |
| tinacms | next-tinacms-s3 | < 23.0.4 | affected |
| tinacms | next-tinacms-dos | < 23.0.4 | affected |
| tinacms | next-tinacms-azure | < 14.0.4 | affected |
| tinacms | next-tinacms-cloudinary | < 26.0.4 | affected |
Weaknesses
- CWE-639: CWE-639: Authorization Bypass Through User-Controlled Key
- CWE-862: CWE-862: Missing Authorization
References
- https://github.com/tinacms/tinacms/security/advisories/GHSA-8mq9-5fw2-5rm4
- https://github.com/tinacms/tinacms/pull/7088
- https://github.com/tinacms/tinacms/commit/d44558e9b4502d4f4fc2c970d22985339fe2b6ce
- https://github.com/tinacms/tinacms/releases/tag/next-tinacms-s3@23.0.4
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.