---
title: "SurrealDB で関数の禁止設定（--deny-funcs）をメソッド形式の呼び出しで回避される欠陥（CVE-2026-121416）: CVSS 7.1、2.0.0 以上 3.3.1 未満（修正版 3.3.1）"
url: https://n-t-p.io/worldsecurity/articles/surrealdb-cve-2026-121416-deny-funcs-bypass-method-style-calls-file-bucket-access-before-3-3-1
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年11月7日
updated: 2026年11月7日
severity: 高
cve: CVE-2026-121416
---

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

> **TL;DR:** SurrealDB 2.0.0 以上 3.3.1 未満で、--deny-funcs で禁止した関数をメソッド形式の呼び出しで認証済みの利用者が実行できる欠陥（CVE-2026-121416、CVSS v3.1 7.1）。認証が必要（PR:L）のため high。KEV 未掲載。修正版 3.3.1。

**要点**
- メソッド形式の関数呼び出し（MethodPart::evaluate）が権限の確認をしないため、--deny-funcs の禁止が効かない（CVE-2026-121416、CWE-284）。CVSS v3.1 は 7.1（評価元 VulnCheck）
- クエリを送れる認証済みの利用者が、file:: 系を禁止していてもファイルバケットのデータを書き込み・読み取りできる。利用者の操作は不要
- 対象は 2.0.0 以上 3.3.1 未満、修正版は 3.3.1。KEV 未掲載、EPSS は取得時点でデータなし
- 3.3.1 へ更新し、クエリを送れる利用者を絞る。悪用の有無・修正の完全性は未確認

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.1 | 7.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 も未算出で、公開された悪用コードの有無も確認できていない。


## 出典
- [NVD CVE-2026-121416](https://nvd.nist.gov/vuln/detail/CVE-2026-121416) — NIST NVD
- [VulnCheck 勧告 SurrealDB 2.0.0 before 3.3.1](https://www.vulncheck.com/advisories/surrealdb-2.0.0-before-3.3.1-deny-funcs-capability-bypass-via-method-style-invocations) — VulnCheck
- [SurrealDB 勧告 GHSA-p296-7pr4-87rr](https://github.com/surrealdb/surrealdb/security/advisories/GHSA-p296-7pr4-87rr) — SurrealDB
- [FIRST EPSS](https://api.first.org/data/v1/epss?cve=CVE-2026-121416) — FIRST

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/surrealdb-cve-2026-121416-deny-funcs-bypass-method-style-calls-file-bucket-access-before-3-3-1