@tinacms/graphql's `FilesystemBridge` Path Validation Can Be Bypassed via Symlinks or Junctions
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| tinacms | tinacms | affected |
|
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Tina | Tinacms |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-g9c2-gf25-3x67 | @tinacms/graphql's `FilesystemBridge` Path Validation Can Be Bypassed via Symlinks or Junctions |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.379% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Ssw
Ssw tinacms\/graphql |
|
| CPEs | cpe:2.3:a:ssw:tinacms\/graphql:*:*:*:*:*:node.js:*:* | |
| Vendors & Products |
Ssw
Ssw tinacms\/graphql |
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Tina
Tina tinacms |
|
| Vendors & Products |
Tina
Tina tinacms |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Tina is a headless content management system. Prior to version 2.2.2, @tinacms/graphql uses string-based path containment checks in FilesystemBridge. That blocks plain ../ traversal, but it does not resolve symlink or junction targets. If a symlink/junction already exists under the allowed content root, a path like content/posts/pivot/owned.md is still considered "inside" the base even though the real filesystem target can be outside it. As a result, FilesystemBridge.get(), put(), delete(), and glob() can operate on files outside the intended root. This issue has been patched in version 2.2.2. | |
| Title | @tinacms/graphql's `FilesystemBridge` Path Validation Can Be Bypassed via Symlinks or Junctions | |
| Weaknesses | CWE-22 CWE-59 |
|
| References |
| |
| Metrics |
cvssV3_1
|