Tina: Cross-origin `POST /media/upload/*` requests can write arbitrary files into the Tina dev server media root
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Tampering
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-352.
Summary
Tina is a headless content management system. Prior to 2.5.2, the TinaCMS CLI package's Vite dev server packages/@tinacms/cli/src/next/vite/cors.ts origin callback returns false for a disallowed origin but does not reject the request, and packages/@tinacms/cli/src/next/vite/plugins.ts still routes POST /media/upload/* to mediaRouter.handlePost. The upload code in packages/@tinacms/cli/src/next/commands/dev-command/server/media.ts writes attacker-controlled multipart contents inside the configured media root. A remote attacker can cause a developer's browser to submit this state-changing request by inducing the developer to visit an attacker-controlled page while tinacms dev is running. This issue is fixed in version 2.5.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- 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
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| tinacms | tinacms | before 2.5.2 | 2.5.2 | Patch available | CNA |
| — | @tinacms/cli (npm) | before 2.5.2 | 2.5.2 | Patch available | GHSA-rgr9-r7mj-mf6x |
- tinacms Vendortinacms Affected before 2.5.2 Fixed in 2.5.2 Patch available CNA
- @tinacms/cli (npm) Vendor— Affected before 2.5.2 Fixed in 2.5.2 Patch available GHSA-rgr9-r7mj-mf6x
Remediation
- Fix · CNA tinacms (tinacms) Fixed in 2.5.2
- Fix · GHSA-rgr9-r7mj-mf6x @tinacms/cli (npm) Fixed in 2.5.2 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-63123
- 2026-10-03 Alias added: GHSA-rgr9-r7mj-mf6x
References
Other 5
- https://github.com/tinacms/tinacms/security/advisories/GHSA-rgr9-r7mj-mf6x
- https://github.com/tinacms/tinacms/pull/7111
- https://github.com/tinacms/tinacms/commit/211997cdb53cbd43638bdee999faa65375cfc260
- https://github.com/tinacms/tinacms/releases/tag/@tinacms/[email protected]
- https://github.com/tinacms/tinacms
More tinacms vulnerabilities
- TI-2026-22987 Cross-Origin File Exfiltration via CORS Misconfiguration + Path Traversal in TinaCMS CVSS 3.1CRITICAL 9.7
- TI-2026-70295 TinaCMS admin preview frames attacker-controlled origin CVSS 3.1CRITICAL 9.3
- TI-2026-45239 Tina: [Broken Access Control] letting any TinaCloud user authorize against any self-hosted site CVSS 3.1HIGH 8.8
- TI-2026-26851 @tinacms/graphql's `FilesystemBridge` Path Validation Can Be Bypassed via Symlinks or Junctions CVSS 3.1HIGH 8.8
- TI-2026-22988 Path Traversal Leading to Arbitrary File Read, Write and Delete in TinaCMS CVSS 3.1HIGH 8.4
- TI-2026-70293 Code injection in Tina CLI via unescaped Git branch name CVSS 3.1HIGH 8.2
Sources
- CVE-2026-63123 · CVE Program
- CVE-2026-63123 · NVD
- FIRST EPSS
- GHSA-rgr9-r7mj-mf6x · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences