つみかさね

CVE-2026-23950

High(8.8)

node-tarの競合状態による任意ファイル上書き CVE-2026-23950:影響範囲と対応方法

公開日: 2026-08-25データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
node-tarisaacs<= 7.5.3

対応ガイド

high|推奨セキュリティ修正影響: 広範

推奨アクション

  1. 1npm ls tar で直接・間接依存を含めた node-tar のバージョンを確認する
  2. 2node-tar 7.5.4 以降へアップデートする
  3. 3即時更新が困難な場合、展開時に SymbolicLink エントリを除外する回避策を適用する

影響対象

node-tar 利用者(信頼できない tar を展開する環境、特に macOS)

対応不要な人

  • node-tar を使用していない、または 7.5.4 以降を使用中
  • 信頼できるアーカイブのみを展開しており、外部由来の tar を処理しない

補足

  • -npm CLI など多くのツールが tar を間接依存として含むため、間接依存も確認してください
CVEnode-tarnpm競合状態シンボリックリンク

30秒で判断

  • 対応すべき人: node-tar 7.5.3 以前を利用し、信頼できない tar アーカイブをプログラム的に展開している(特に macOS APFS / HFS+ 上)
  • 対応不要な人: node-tar を使っていない、または 7.5.4 以降を使用中。信頼できるアーカイブのみを展開している
  • 確認コマンド: npm ls tar(直接・間接依存の tar バージョンを確認)

概要

node-tar は Node.js 向けの tar 実装で、npm CLI 内部でも利用される非常に広く使われるライブラリです。バージョン 7.5.3 以前において、path-reservations システムの Unicode パス衝突処理に不備があります。

大文字小文字や Unicode 正規化を区別しないファイルシステム(macOS の APFS など)では、ßss のように衝突するパスに対してロックが正しく機能せず、並行して処理されてしまいます。これにより、パスごとの処理を直列化する内部の並行制御(PathReservations)がバイパスされ、競合状態を悪用したシンボリックリンク汚染(Symlink Poisoning)による任意ファイル上書きが可能になります(CWE-367 / CWE-176)。

CVSSベクトル

項目
CVSS v3 スコア8.8(High)
攻撃元区分(AV)ネットワーク(悪意ある tar の取得・展開経由)
必要な特権(PR)不要
ユーザー関与(UI)要(悪意あるアーカイブの展開)
主な影響任意ファイル上書き(完全性)
CWECWE-367(TOCTOU 競合状態)、CWE-176(Unicode 処理不備)、CWE-352

影響を受けるソフトウェア

製品パッケージ影響バージョン修正バージョン
node-tartar (npm)7.5.3 以前(<= 7.5.3)7.5.4
  • 特に macOS(APFS / HFS+) など、大文字小文字・Unicode 正規化を区別しないファイルシステム上で影響が顕在化します。

修正バージョンと回避策

  • 修正: node-tar 7.5.4 へアップデート。path-reservations.js が対象ファイルシステムの挙動に合わせた正規化(NFKD + toLocaleLowerCase('en') / toLocaleUpperCase('en'))を行うよう修正されています。
  • 回避策: すぐに更新できない場合、arbitrary な tar データをプログラム的に展開する際に、すべての SymbolicLink エントリを除外する(npm と同様の防御)ことで任意ファイル書き込みを緩和できます。
  • 確認方法: npm ls tar で直接・間接依存を含めた tar のバージョンを確認します。

関連リンク


データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。