TinaCMS disclosed and patched a remote code execution vulnerability in @tinacms/cli affecting the Forestry-to-Tina migration workflow. The flaw allowed attacker-controlled values from .forestry YAML files—particularly label and name fields—to be injected into generated tina/templates.{ts,js} source files through an unsafe internal marker mechanism in addVariablesToCode. Because those generated files are then imported by tina/config.{ts,js}, malicious JavaScript could execute as soon as a developer ran Tina development or build commands, making the issue exploitable with no authentication but requiring a victim to migrate a malicious Forestry project and then start Tina.
The fix was released in @tinacms/cli 2.4.3 and hardens code generation against untrusted input. TinaCMS replaced the forgeable static __TINA_INTERNAL__ marker with a per-process random nonce-based marker so only generator-created placeholders are converted back into raw code after JSON.stringify, and added validation to reject unexpected control characters such as NUL bytes and newlines in Forestry names and labels. The patch also included regression tests to ensure legitimate generated markers are unquoted while user-controlled look-alike strings remain inert data.

See affected versions and whether adversaries are exploiting it.
3 events from the most recent confirmed update back to the earliest known activity.
A GitHub security advisory disclosed a remote code execution vulnerability in @tinacms/cli's Forestry-to-Tina migration workflow, where unsanitized values from .forestry YAML files could inject arbitrary JavaScript into generated Tina source files. The advisory said the issue was verified end-to-end against tinacms and @tinacms/cli version 2.3.1 and noted code would execute when a developer ran tinacms dev or tinacms build after migrating a malicious project.
TinaCMS released @tinacms/cli version 2.4.3, highlighting a security-relevant patch that hardens Forestry migration code generation against untrusted input. The release also updated dependencies including tinacms 3.9.0 and @tinacms/app 2.5.3.
A code change was committed to harden TinaCMS's Forestry migration generator against untrusted input by replacing a forgeable internal marker with a per-process random nonce-based marker and rejecting unexpected control characters in Forestry names and labels. The commit also added regression tests to ensure attacker-controlled look-alike strings remain inert data.
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
See whether adversaries are exploiting this yet, and where the affected versions run in your environment.
3 references tracked. Mallory keeps watching after this page renders.
github.com
Open sourcegithub.com
Open sourcegithub.com
Open sourceMap indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.