CVE-2026-63123 json
Tina: Cross-origin `POST /media/upload/*` requests can write arbitrary files into the Tina dev server media root
published 2026-08-19 2 mo ago modified 2026-10-26 14 d ago also EUVD-2026-62971 , GHSA-rgr9-r7mj-mf6x
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 18%
- public exploits
- 0
- none known
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.
Patch / fix
- npm @tinacms/cli 2.5.2
- tina tinacms 2.5.2
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.26% chance of exploitation in the next 30 days, higher than 18% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/tinacms/tinacms/security/advisories/GHSA-rgr9-r7mj-mf6x referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @tinacms/cli | <2.5.2 |
2.5.2 |
Affected products
- tinacms tinacms
Classification
- Weakness
-
- CWE-352 Cross-Site Request Forgery
References
-
github.com
/tinacms/tinacms/pull/7111
web
-
github.com
/tinacms/tinacms/commit/211997cdb53cbd43638bdee999faa65375cfc260
web
-
github.com
/tinacms/tinacms/security/advisories/GHSA-rgr9-r7mj-mf6x
exploit, web
-
github.com
/tinacms/tinacms/releases/tag/@tinacms/cli@2.5.2
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-63123
advisory
-
github.com
/tinacms/tinacms
package
Sources
- CVE List CVE-2026-63123
- GitHub Advisory GHSA-rgr9-r7mj-mf6x
- NVD CVE-2026-63123
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.