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

SurrealDB で関数の禁止設定(--deny-funcs)をメソッド形式の呼び出しで回避される欠陥(CVE-2026-121416): CVSS 7.1、2.0.0 以上 3.3.1 未満(修正版 3.3.1)

目次(4)

CVE-2026-121416

SurrealDB(Rust 製のマルチモデルデータベース)で、運用者が起動オプション --deny-funcs(特定の関数群の実行を禁止する設定)で止めた関数を、クエリを送れる認証済みの利用者が「メソッド形式」の書き方で実行できてしまう欠陥(CVE-2026-121416)が公表されました。3.x の既定である実行エンジン(ストリーミングエンジン)で、メソッド形式の呼び出しを処理する MethodPart::evaluate が、関数を解決したあとに権限の確認をせずそのまま呼び出すためです。NVD に載っている CVSS v3.1 は 7.1(AV:N/AC:L/PR:L/UI:N/C:H/I:L/A:N、評価元は VulnCheck)です。認証が必要(PR:L)で、CVSS も 9 未満のため severity は high です。CISA の KEV(悪用が確認された脆弱性)には載っておらず、EPSS(悪用される見込みの数値)は取得時点でデータがありません。対象は 2.0.0 以上 3.3.1 未満、修正版は 3.3.1 です。

概要

項目内容
問題--deny-funcs の禁止がメソッド形式の関数呼び出しに効かない(CWE-284、不適切なアクセス制御)
攻撃条件クエリを送れる認証済みの利用者(PR:L)。ネットワーク経由で、利用者の操作は不要
影響禁止したはずの関数を実行できる。例として、file:: 系の関数を禁止していても、ファイルバケットのデータを書き込み・読み取りできる。機密性は高、完全性は低、可用性は影響なし
CVSS v3.17.1(AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N、評価元は VulnCheck)。CVSS v4.0 でも 7.1(同じ評価元)
EPSS取得時点(2026-11-04)では FIRST にデータなし
CISA KEV載っていない(2026-11-04 時点)
対象2.0.0 以上 3.3.1 未満(NVD・VulnCheck の記載。GitHub の勧告は 3.3.1 未満)
修正3.3.1

GitHub の勧告(GHSA-p296-7pr4-87rr、2026-10-19 公開)によると、この禁止設定の確認は 4 か所に分散していて、メソッド形式の呼び出しの経路だけ確認が抜けていました。勧告は、禁止した 10 種類の関数群で回避を確認したと説明しています。

どんな場合に危ないか

  • SurrealDB 2.0.0 以上 3.3.1 未満で、--deny-funcs(または対応する環境変数)に頼って関数を制限している場合。
  • 制限の対象が利用者に使わせたくない関数群(ファイルの読み書きなど)で、クエリを送れる権限を一般の利用者や外部のアプリに渡している場合。
  • --deny-funcs を使っていない環境では、この欠陥で新しく広がる権限はない(ただし、他の設定への影響は確認できていない)。

対応

  1. 3.3.1 以降へ更新する。
  2. 更新までの間は、クエリを送れる利用者・接続元を最小限にし、ファイルバケットなど重要な機能を持つ環境では権限を見直す。
  3. file:: 系などを禁止している環境では、ファイルバケットに身に覚えのない読み書きがないかログを確認する。
  4. 禁止設定だけに頼らず、データベースの利用者ごとの権限(ロール・アクセス定義)でも制限する。

未確認の点

  • 悪用の有無・規模。現時点で攻撃の報告は確認できていない。
  • 3.3.1 の修正の完全性(勧告は禁止設定の確認が分散している点を指摘しており、ほかの経路が残っていないかは確認できていない)。
  • 2.0.0 から 3.0 未満の系列でも、同じ条件で実際に回避できるか。
  • 勧告の「10 種類の関数群」の具体的な範囲。
  • NVD の分析は未完了(Deferred)で、評価が変わる可能性がある。EPSS も未算出で、公開された悪用コードの有無も確認できていない。

この記事について

AI の利用
本記事は AI が NVD などの公開情報をもとに作成しました。数値は取得時点(2026-11-04)のもので、未確認の点は本文に明記しています。

出典

この記事を共有