Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
auth-header-trust-rules — ヘッダー信頼型の認証バイパスパターン(CVE-2025-29927 クラス)を検出する Semgrep ルール。bk-security.github.io の付属リポジトリです。 | Kitploit
ツール/GitHubGitHub/bk-security/auth-header-trust-rules
認証と認可静的コード分析 (SAST)脆弱性分析コード分析ウェブセキュリティ学習と教育
GitHubbk-security/auth-header-trust-rules

auth-header-trust-rules

ヘッダー信頼型の認証バイパスパターン(CVE-2025-29927 クラス)を検出する Semgrep ルール。bk-security.github.io の付属リポジトリです。

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
3ヶ月前未レビュー

auth-header-trust-rules

攻撃者が制御できる HTTP リクエストヘッダーに基づいて認証・認可・信頼の判断を行うコードを検出する、小さな Semgrep ルールパックです。

この脆弱性クラスの代表的な例が CVE-2025-29927 です。Next.js はミドルウェアを実行するかどうかの判断に x-middleware-subrequest ヘッダーを信頼しており、 細工された値を送り込んだインバウンドリクエストはミドルウェアを完全にスキップできました。 同様の形は、さまざまなフレームワークやエコシステムで繰り返し発生しています。

このパックには、2 つの言語ファミリーと、このバグの 3 つのサブクラスに対するルールが 含まれています。完全に調整された CI ゲートではなく、コードレビューの補助として意図されて います。ルールは精度よりも再現率を優先しており、それぞれの検出結果について人間が判断する 対話的な実行に最も適しています。

この脆弱性クラスとこのパックの設計判断についての詳細は、bk-security.github.io を参照してください。

ルール一覧

ルール言語深刻度検出内容
nodejs-header-flag-auth-bypassJS / TSWarning内部プロトコルや認証バイパスに使われることを示唆する名前のヘッダーの読み取り (x-internal, x-bypass-auth, x-middleware-subrequest, x-admin-override, x-impersonate など)
nodejs-header-as-identityJS / TSWarningユーザー ID を運ぶために慣例的に使われるヘッダーの読み取り (x-forwarded-user, x-authenticated-user, x-remote-user など)
nodejs-forwarded-for-trustJS / TSInfoセキュリティ上の判断で一般に信頼される x-forwarded-for、x-real-ip、および類似の送信元 IP ヘッダーの読み取り
python-header-flag-auth-bypassPythonWarningNode.js 版と同じ。Django スタイルの request.META["HTTP_X_*"] アクセスも含む
python-header-as-identityPythonWarningNode.js 版と同じ。Python 版
python-forwarded-for-trustPythonInfoNode.js 版と同じ。Python 版

クイックスタート

Semgrep をインストールします:

root@kitploit:~
pip install semgrep

ターゲットに対してパックを実行します:

root@kitploit:~
semgrep --config /path/to/auth-header-trust-rules/rules /path/to/target

または、単一のルールを実行します:

root@kitploit:~
semgrep --config /path/to/auth-header-trust-rules/rules/nodejs/header-flag-auth-bypass.yaml /path/to/target

同梱のフィクスチャに対してルールを検証します:

root@kitploit:~
semgrep --test --config rules/ tests/

期待される出力:

root@kitploit:~
6/6: ✓ All tests passed

ルールが検出するものと検出しないもの

ルールは、信頼すると危険であることが知られているヘッダー名のキュレーションされたリストに マッチします。一般的なケースは検出できますが、以下は検出できません:

  • ヘッダーの読み取りが、ヘッダー文字列を含まない名前のヘルパー関数の中に 隠れているフレームワーク。x-some-novel-name を読み取る getInternalFlag(req) という名前のカスタムヘルパーはルールを通過します。
  • キュレーションされたリストにないヘッダー名。CVE-2025-29927 クラスは原理上、 任意のヘッダー名を使用できます。x-internal-*、x-trust-*、x-bypass-* の ようなパターンを含めることで再現率を優先していますが、新しい名前は すり抜けます。
  • Cookie、クエリパラメータ、またはリクエストボディのフィールドに基づく認証判断。 これらは同じ脆弱性クラスですが、独自のルールが必要です。
  • ヘッダーの不在に基づく認証判断。一部のアプリケーションは、ヘッダーが 存在しない場合に認証チェックをスキップします(設定ミスのある許可リスト パターン)。現在のルールは読み取り・使用型であり、不在ベースではありません。

特定のコードベース向けにパックを拡張する場合、最も価値が高い追加は通常、 フレームワーク固有のヘルパー関数パターンです。コードベースに isInternalRequest(req) ヘルパーがある場合、それを検出するルールは YAML 1 行で記述できます。

ルールの追加

  1. rules/<lang>/<name>.yaml の下にルールを作成します。
  2. tests/<lang>/<name>.<ext> の下にテストフィクスチャを作成し、ポジティブな 例には # ruleid: <rule-id>、ネガティブな例には # ok: <rule-id> という 注釈を付けます。
  3. semgrep --test --config rules/ tests/ を実行します。新しいルールとフィクスチャは 自動的に検出されます。変更を送信する前にテストが成功している必要があります。

ライセンス

MIT.

著者

Bruce Kang. 関連ブログ記事のソースは bk-security.github.io にあります。

ツールをダウンロード