Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
rocq-cve-poc-12155 — CVE-2020-37268 — Rocq/CoqのPrint Assumptionsはパラメータのインライン化により安全でない宇宙(Universe)チェックを省略する | Kitploit
ツール/GitHubGitHub/endrazine/rocq-cve-poc-12155
静的分析脆弱性分析エクスプロイト学習と教育
GitHubendrazine/rocq-cve-poc-12155

rocq-cve-poc-12155

CVE-2020-37268 — Rocq/CoqのPrint Assumptionsはパラメータのインライン化により安全でない宇宙(Universe)チェックを省略する

リポジトリを見る
1日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2020-37268 — Rocq/Coq の Print Assumptions が Parameter Inline 経由の安全でない宇宙(universe)チェックを省略する

モジュールファンクタのインライン化による証明監査のバイパス — 2020年以降未修正。

脆弱性の概要

Print Assumptions は、ある定義がモジュール型の Parameter Inline を通じて呼び出し元に到達した場合に、その定義が宇宙チェックを無効にして構築されたことを報告できない。ファンクタの適用はパラメータの本体をインライン化し、Unset Universe Checking コンテキストの記録を破棄するため、結果として得られる定数には安全でない操作の痕跡が一切残らない。

したがって、あるモジュールは宇宙の矛盾を利用して False を証明でき、Print Assumptions は依存する証明をグローバルコンテキストの下で閉じているものとして報告する — 公理も、安全でないフラグも見えない。

coqchk は生成されたコンパイル済み .vo ファイルを確かに拒否するが、プロセス内の仮定監査(Print Assumptions)はこの問題を検出しない。

使用方法

docker build -t rocq-cve-poc-12155 .
docker run --rm rocq-cve-poc-12155

脆弱なバージョン(Rocq 8.11 – 9.2.0、およびモジュールシステムを備えたすべての Coq 8.x)では、出力は 0 = 1 の証明を確認し、Print Assumptions はそれを閉じているものとして報告する。

影響

Print Assumptions を唯一の完全性チェックとして依存しているあらゆるワークフローが影響を受ける可能性がある:

  • 形式検証済みコンパイラ(CompCert)
  • 検証済み OS カーネル(CertiKOS)
  • 分離論理フレームワーク(Iris)
  • 数学ライブラリ(MathComp)
  • 証明付きコード — 依存関係内の悪意ある .v ファイルが、仮定監査を通過する不健全な宣言を導入する可能性がある
  • 検証済みスマートコントラクト(ConCert)
  • コンパイル済み出力に対して coqchk を日常的に実行していないあらゆるプロジェクト

根本原因

モジュール型が Parameter Inline を宣言すると、ファンクタの適用はパラメータの本体を呼び出し元コンテキストにインライン化する。このインライン化は、元の定義が Unset Universe Checking の下で生成されたことを記録したメタデータを破棄する。そのため、宇宙グラフはインライン化された本体からの矛盾した宇宙制約を受け入れ、Print Assumptions は安全でないコンテキストの痕跡を一切見ることができない。

このバグは2020年から未解決であり(Coq issue #12155)、プロジェクトの dev/doc/critical-bugs.md に文書化されている。Rocq 9.2.0 の時点で修正はマージされていない。

スコアリング

項目値
CVECVE-2020-37268
CVSS 3.1AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N — 7.1 (High)
CVSS 4.0AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N — 6.8 (Medium)
CWECWE-778 — 不十分なログ記録

影響を受けるバージョン

製品影響を受けるバージョン修正済み
Coq8.11 – 8.20未修正
Rocq Prover8.20 – 9.2.0未修正

緩和策

  • 本番環境で証明を信頼する前に、コンパイル済みのすべての .vo ファイルに対して coqchk を実行する。coqchk は Print Assumptions が見逃す宇宙の矛盾を検出する。
  • モジュールの依存関係を監査する — この攻撃には、Unset Universe Checking の下でコンパイルされた Parameter Inline を持つモジュール型が必要である。
  • Rocq 9.2.0 の時点でパッチ適用済みのバージョンは存在しない。

参考情報

バグ報告rocq-prover/rocq#12155
重大バグ文書dev/doc/critical-bugs.md
VulnCheck アドバイザリvulncheck.com

タイムライン

日付イベント
2020Jason Gross によりバグが報告される(coq/coq#12155)
2020–2026バグは未解決のまま、critical-bugs.md に文書化される
2026-08-24CVE-2020-37268 が VulnCheck により公開される
2026-08-24Docker で再現可能な PoC が公開される

クレジット

  • バグ発見: Jason Gross
  • PoC パッケージ化: Jonathan Brossard (@endrazine) — MOABI / PSIRT.com
ツールをダウンロード