脆弱性・CVE速報深刻度: 高

@sigstore/oci に脆弱性(CVE-2026-118763): 不正なレジストリにレジストリの認証情報を送ってしまう恐れ(CVSS 7.4)

目次(5)

CVE-2026-118763

npm の @sigstore/oci(sigstore-js の OCI レジストリ向けパッケージ)に、2026 年 10 月 30 日(UTC)に脆弱性 CVE-2026-118763 が公開されました。GitHub Advisory の評価は High(CVSS v3.1: 7.4、CWE-522)です。署名や証明書を OCI レジストリへ push するときに、レジストリのユーザー名とパスワード、またはアクセストークンが、レジストリが指定した別のホストへ送られる恐れがあります。CISA の KEV には載っていません。EPSS は 0.3%(10/30 時点)です。

何が起きるか

  • signIn() は、レジストリの認証ヘッダーをクライアント全体の既定ヘッダーとして設定します。Basic 認証なら username:password、Bearer 認証ならトークンが入ります。Docker の設定ファイルにあるカスタムヘッダーも同様です。
  • uploadBlob() は、blob のアップロード開始に対する応答の Location ヘッダーを読み、そこへ PUT します。Location が絶対 URL の場合、ホストが元のレジストリと同じかを確かめずに送ります。
  • ヘッダーは既定で付くため、別ホストへの PUT にも認証情報が付いたまま送られます。HTTP ライブラリは、自分でたどるリダイレクトでは別ホストへの Authorization を外しますが、この PUT は新しい明示的な呼び出しなので、その保護が効きません。

勧告によると、悪用できるのは、レジストリが不正、または侵害されている場合、あるいは正規のレジストリになりすまされている場合です。OCI の仕様は、アップロード先の Location に絶対 URL を使うことを認めています。そのため、仕様どおりに見える応答で、認証情報を攻撃者のホストへ送らせることができます。

影響を受ける版

  • 勧告の影響範囲は @sigstore/oci 0.7.1 以下、修正版は 0.7.2 とされています。
  • 利用の経路は attachArtifactToImage() などで、署名やアテステーションを OCI レジストリへ付ける処理です。CI で署名物を push している場合が主な対象になります。

この勧告の関連と、2 つの確認点

  • 7 月に公開された CVE-2026-59891(GHSA-pf56-329r-95rw、CVSS 9.6)は、Docker の設定から認証情報を選ぶときの部分一致が原因で、0.7.1 で直っています。今回の勧告は、その修正が「どの認証情報を選ぶか」だけを直し、「どこへ送るか」は直していなかった、という続きの問題です。
  • 勧告は修正版を 0.7.2 としています。ただし、npm で確かめられた 0.7.2 の公開は 2026-08-04 で、その版のリリースノートが書いているのは認証情報の選択の修正(上記 CVE-2026-59891 に対応するもの)です。上流の送信先の制限を加える修正(「Harden OCI registry request handling」)がリポジトリに入ったのは 10 月 28〜29 日で、npm にはまだこれを含む新しい版が見当たりません(10/31 時点で最新は 0.7.2)。0.7.2 に今回の修正が入っているかは、記事の時点では確認できていません。

対応

  1. @sigstore/oci を使っているか確認します(npm ls @sigstore/oci)。sigstore CLI や @actions/attest、actions/attest* などの間接利用も含みます。
  2. 勧告どおり 0.7.2 以降に更新しつつ、上記のとおり修正の有無が確認できていないため、上流の新しい版の公開に注意します。
  3. 署名物を push するレジストリは、自分たちが管理する信頼できる宛先に限ります。宛先を外部の入力で決めない運用が重要です。
  4. レジストリのトークンは権限と期限を絞り、短命のものにします。信頼できないレジストリへ push した履歴がある場合は、そのトークンの更新を検討します。

未確認の点

  • NVD の記載は確認できていません(公開直後)。
  • 悪用の報告は見つかっていません(KEV 掲載なし、EPSS は低い水準)。
  • 勧告は、リポジトリのソースを読んで確かめた内容で、不正なレジストリに対する実際の送信は実行していないと書いています。

この記事について

出典

この記事を共有