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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
checkmk_broccoli2shell — Linuxホストを対象に、CVE-2026-111497の影響を受けるBrotliデコーダ(libbrotlidec、Node.js、Python、.NET)を監査するCheckmk拡張機能です。バージョン、バックポート、および古いプロセスをチェックします。 | Kitploit
ツール/GitLabGitLab/checkmk1/checkmk_broccoli2shell
防御ツール脆弱性スキャナー脆弱性分析構成監査インシデントレスポンス
GitLabcheckmk1/checkmk_broccoli2shell

checkmk_broccoli2shell

Linuxホストを対象に、CVE-2026-111497の影響を受けるBrotliデコーダ(libbrotlidec、Node.js、Python、.NET)を監査するCheckmk拡張機能です。バージョン、バックポート、および古いプロセスをチェックします。

リポジトリを見る
1019時間7分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

checkmk_broccoli2shell

Linux ホスト上のすべての Brotli デコーダーについて、Broccoli2Shell - CVE-2026-111497 の影響を受けているかどうかを表示する Checkmk 拡張機能です。これは Google の C 製 Brotli デコーダーにおける境界外書き込みであり、プログラムが信頼できないソース(HTTP レスポンス、リクエストボディ、アーカイブ)からの Brotli データを展開する際にリモートコード実行につながる可能性があります。2026-10-21/22 に公開され、Brotli 1.0.10、1.1.1、1.2.1、Node.js 22.23.4、24.22.1、26.12.1、Python パッケージの Brotli 1.2.1 と brotlicffi 1.2.1.0、および .NET 8.0.33、9.0.22、10.0.14 で修正されました。

この拡張機能には、事実のみを収集する小さな POSIX シェルエージェントプラグインが含まれています(システムライブラリ libbrotlidec、Node.js バイナリ、Python の Brotli および brotlicffi のインストール、.NET ランタイム、それらのバージョン、パッケージの変更履歴、それらが何にリンクされているか、どのプロセスがそれらをロードしているか、そして置き換えられたものをまだ実行しているプロセス)。それが「修正済み」を意味するのか「脆弱」を意味するのかは、Checkmk サーバー上のチェックプラグインが判断します。そのため、新しい情報(別の修正済みリリースなど)には更新された .mkp のみが必要で、すべてのホストに新しいスクリプトを配布する必要はありません。

単にバージョン番号を比較しない理由: ディストリビューションは上流のバージョンを変更せずに修正をバックポートし、Node.js にバンドルされたコピーではなくシステムライブラリに対して Node.js をビルドします。Debian 12 は libbrotli 1.0.9 と Node.js 18.20.4(上流ではサポート終了、修正なし)を提供していますが、どちらも修正済みです。更新された libbrotli1 パッケージが Node.js の実行するデコーダーだからです。そのため、この拡張機能は各デコーダーを所有するパッケージの変更履歴を読み、Node.js および Python 拡張機能がリンクされているライブラリまで追跡します。

要件

  • Checkmk >= 2.5.0(現在の cmk_addons.plugins プラグイン API を使用)。
  • 監視対象ホスト: Linux で、Checkmk エージェントが root として実行されていること(プラグインはすべてのプロセスのバイナリと /proc/<pid>/maps を読み取ります)。GNU または busybox ツールを備えたプレーンな POSIX sh。パッケージの変更履歴は dpkg、rpm、または apk で読み取られます。Debian 系、Red Hat 系、Amazon Linux、Alpine でテスト済みです。以下を参照してください。
  • エージェントベーカリーによるデプロイには商用 Checkmk エディション(Pro、Ultimate、またはマルチテナンシー付き Ultimate)が必要です。Community エディションでは、エージェントプラグインを手動でホストにコピーしてください。手動エージェントプラグインのデプロイ(Community エディション)を参照してください。チェックプラグイン、ルール、サービスはどちらの場合も同じように動作します。

テスト済み環境

Checkmk イメージ日付結果
checkmk/check-mk-ultimate:2.5.0p172026-10-28OK(ビルド、cmk-validate-plugins、スモークテスト、インストール + ディスカバリ + チェック + エージェントベイク)
checkmk/check-mk-ultimate:3.0.0-2026.10.28(デイリー)2026-10-28OK(ビルド、cmk-validate-plugins、スモークテスト、インストール + ディスカバリ + チェック + エージェントベイク)

エージェントプラグインは、2026-10-28 にディストリビューション独自のパッケージと公式イメージに対して実行されました(scripts/test_agent_plugin.sh)。デコーダーをロードした node プロセスと python プロセスを使用しました。その後、ライブラリ、node バイナリ、Python 拡張モジュールがディスク上で置き換えられ、再起動検出が実行中のプロセスを報告しました。

ディストリビューション

ディストリビューションデコーダープラグインの結果
Debian 12libbrotli 1.0.9-2+deb12u1、Node.js 18.20.4(リンク)、python3-brotliバックポートにより修正済み(changelog)、Node.js はライブラリ経由
Debian 13libbrotli 1.1.0-2+deb13u1、Node.js 20.19.2(リンク)、python3-brotli、python3-brotlicffi(リンク)バックポートにより修正済み、Node.js と brotlicffi はライブラリ経由
Ubuntu 24.04libbrotli 1.1.0-2ubuntu0.1、Node.js 18.19.1(リンク)、python3-brotli、dotnet-runtime-8.0 8.0.32バックポートにより修正済み - .NET は脆弱(8.0.33 はまだアーカイブにない)
AlmaLinux 8.10libbrotli 1.0.6-5.el8_10、Node.js 10.24.0(独自デコーダー)、python3-brotliライブラリと Brotli はバックポートにより修正済み - Node.js 10 は脆弱(サポート終了、独自デコーダー)
AlmaLinux 9.8libbrotli 1.0.9-10.el9_8.1、Node.js 16.20.2(リンク)、python3-brotli、dotnet-runtime-8.0 8.0.32バックポートにより修正済み - .NET は脆弱
AlmaLinux 10.2libbrotli 1.1.0-8.el10_2.1、Node.js 22.23.2(リンク)、python3-brotliバックポートにより修正済み
Fedora 44libbrotli 1.2.1、Node.js 22.23.1(リンク)、python3-brotli 1.2.1バージョンにより修正済み
Amazon Linux 2023libbrotli 1.1.0-1.amzn2023.0.1、Node.js 18.20.8(リンク)脆弱 - 修正済みパッケージはまだなし、Node.js はライブラリ経由
Alpine 3.22brotli-libs 1.1.1、Node.js 22.23.4(リンク)、py3-brotli 1.1.1バージョンにより修正済み

公式イメージと PyPI

イメージデコーダープラグインの結果
node:24.22.0-slimNode.js 24.22.0(独自デコーダー)脆弱
node:24.22.1-slimNode.js 24.22.1(独自デコーダー)バージョンにより修正済み
node:20-alpineNode.js 20.20.2(独自デコーダー)脆弱 - サポート終了、修正なし
node:24.22.0-slim、バイナリを /home/dev/.nvm/... に移動(ユーザー所有)Node.js 24.22.0脆弱 - バージョンはバイナリから読み取られ、実行はされない
python:3.12-slim + pip install Brotli==1.2.0 brotlicffi==1.2.0.0、/srv/app/venv に Brotli 1.1.0 の venvBrotli、brotlicffi(独自デコーダー)脆弱(venv は実行中のプロセス経由で検出)
python:3.12-slim + 現在の PyPIBrotli 1.2.1、brotlicffi 1.2.1.0バージョンにより修正済み
mcr.microsoft.com/dotnet/runtime:8.0.32 / :8.0.NET 8.0.32 / 8.0.33脆弱 / バージョンにより修正済み

Checkmk サイト自体(2.5.0p17)の Python には Brotli パッケージは同梱されていません。このプラグインは まだコンテナ外の本番ホストでは実行されていません - 特に SELinux が enforcing の環境(RHEL 系)では未検証です。通常、そこではエージェントは unconfined で動作します。

インストール

  1. リリースから .mkp をダウンロードします(または自分でビルドします。詳しくは 開発を参照してください)。

  2. Setup > Maintenance > Extension packages > Upload package、またはサイト内の コマンドラインで:

    mkp add broccoli2shell-<version>.mkp
    mkp enable broccoli2shell <version>
    
  3. チェック対象のホストにエージェントプラグインをデプロイします:

    • 商用版: Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules の Agent plug-ins セクションで、ルール Broccoli2Shell agent plug-in を設定します。対象ホスト用のルールを作成し、エージェントをベイクして更新します。プラグインは常に非同期で実行され、デフォルトの間隔は1時間です。
    • コミュニティ版 / 手動: 以下を参照してください。
  4. ホスト上でサービスディスカバリを実行します。各デコーダーがそれぞれ独自のサービスを取得し、さらにホストごとに1つの Broccoli2Shell restart サービスが作成されます。

  5. 任意: Setup > Services > Service monitoring rules > Broccoli2Shell (CVE-2026-111497) および Broccoli2Shell restart の状態を調整します。

手動でのエージェントプラグインのデプロイ (コミュニティ版)

package/agents/plugins/broccoli2shell をエージェントのプラグインディレクトリ内の キャッシュ間隔サブディレクトリにコピーし、実行可能にします:

install -m 755 broccoli2shell /usr/lib/check_mk_agent/plugins/3600/broccoli2shell

3600 ディレクトリは、エージェントに1時間に1回バックグラウンドで実行させ、その間はキャッシュされた結果を提供させます。これを直接 plugins/ に入れないでください。大きなバイナリやすべてのプロセスのメモリマップを読み取るため、エージェントのクエリごとには負荷が大きすぎます。

監視対象

サービス単位状態(デフォルト、設定可能)
Broccoli2Shell <path>デコーダー、例: Broccoli2Shell /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1、Broccoli2Shell /usr/bin/node、Broccoli2Shell /usr/lib/python3/dist-packages (brotli)、Broccoli2Shell /usr/lib/dotnet (.NET 8.0)OK 修正済みまたは影響なし - CRIT 脆弱、実行中のプロセスにロードされている - CRIT 脆弱、ロードされていない - UNKNOWN バージョンまたはリンクされたライブラリを特定できない
Broccoli2Shell restartデコーダーを持つホストOK - CRIT プロセスが依然として置き換えられたデコーダーを使用している

スクリーンショットは Checkmk 2.5.0p17 のテストサイトから取得したもので、その4つのホストは実際のエージェントの代わりに sample-data/ 内の記録を受け取ります(実ホストはありません)。Debian 12 と Ubuntu 24.04 はバックポートで修正済みで、Node.js はシステムライブラリを通じて修正されていますが、Ubuntu 上の .NET 8.0.32 は脆弱です。Amazon Linux 2023 はライブラリがまだ修正されていないため、その Node.js も同様です。また、PyPI の Brotli と brotlicffi を使用する Python アプリケーションもあります。いずれも、置き換えられたデコーダーを実行しているプロセスが依然として存在します。

OK および CRIT 状態の4つのサンプルホストの Broccoli2Shell サービス

サービスの詳細には、次のステップ、パッケージ、その changelog の内容、およびリンクされているライブラリが示されます:

CRIT 状態の Broccoli2Shell サービスの詳細

flowchart TD
    A[Decoder] --> L{"Linked against the<br/>system libbrotlidec?"}
    L -- "yes (distribution Node.js,<br/>Debian's brotlicffi)" --> LIB[result of that library's service]
    L -- "not found" --> U[UNKNOWN]
    L -- no --> B{Version known?}
    B -- no --> U
    B -- yes --> C{"Version >= fix of its branch?<br/>libbrotli/Brotli 1.0.10 / 1.1.1 / 1.2.1<br/>brotlicffi 1.2.1.0<br/>Node.js 22.23.4 / 24.22.1 / 26.12.1<br/>.NET 8.0.33 / 9.0.22 / 10.0.14<br/>or a newer branch"}
    C -- yes --> OK[OK: fixed]
    C -- no --> D{"Package changelog names<br/>CVE-2026-111497?"}
    D -- yes --> OKB[OK: fixed by distribution backport]
    D -- no --> E{"Loaded by a running process?"}
    E -- yes --> CR[CRIT: vulnerable]
    E -- no --> CR2["CRIT: vulnerable<br/>(own state in the rule)"]
ツールをダウンロード