UNKNOWNCVE-2026-34603

@tinacms/graphql のメディアエンドポイントは、シンボリックリンクまたはジャンクションを介してメディアルートからエスケープできる

プラットフォーム

nodejs

コンポーネント

@tinacms/graphql

## 概要 `@tinacms/cli` は最近、開発メディアルートに字句パス・トラバーサルチェックを追加しましたが、実装は依然としてパス文字列のみを検証し、シンボリックリンクまたはジャンクションのターゲットを解決しません。 リンクがすでにメディアルートの下に存在する場合、Tina は `pivot/written-from-media.txt` のようなパスをメディアディレクトリの「内部」として受け入れ、そのリンクターゲットを介して実際のファイルシステム操作を実行します。これにより、ルート外のメディアのリスト表示と書き込みアクセスが可能になり、同じ根本原因が削除にも影響します。 ## 詳細 開発メディアハンドラーは、ユーザー制御のパスを次のように検証します。 ```ts function resolveWithinBase(userPath: string, baseDir: string): string { const resolvedBase = path.resolve(baseDir); const resolved = path.resolve(path.join(baseDir, userPath)); if (resolved === resolvedBase) { return resolvedBase; } if (resolved.startsWith(resolvedBase + path.sep)) { return resolved; } throw new PathTraversalError(userPath); } function resolveStrictlyWithinBase(userPath: string, baseDir: string): string { const resolvedBase = path.resolve(baseDir) + path.sep; const resolved = path.resolve(path.join(baseDir, userPath)); if (!resolved.startsWith(resolvedB

修正方法

公式パッチはありません。回避策を確認するか、アップデートを監視してください。

依存関係を自動的に監視

新しい脆弱性がプロジェクトに影響を与えたときにアラートを受け取りましょう。

無料で始める