注目★★★★★GitHub Advisory
pytonapi のカスタムパス Webhook で認証をバイパス、任意ペイロード実行可能
30秒で把握
- 1pytonapi 2.2.0 の Webhook カスタムパスで認証バイパス、任意ペイロード送信が可能
- 2セットアップ時にトークンがデフォルトパスのみに登録され、カスタムパスは保護されない構造的欠陥
- 3本番 Webhook 運用中なら即座に実装確認・パッチ適用を実施し、認証なしリクエスト送信を試みるテスト検証を推奨
要約
pytonapi 2.2.0 の `TonapiWebhookDispatcher` は、ドキュメント化された `path=` 引数でカスタムパスを指定した Webhook ハンドラー登録時に、`Authorization` ヘッダー検証に失敗する脆弱性を持つ。セットアップ時にベアラートークンはデフォルトサフィックスパス (`/hook/account-tx` など) にのみ登録され、カスタムパス (`/hook/custom` など) はトークンマップに追加されない。カスタムパスへのリクエスト受信時に `self._tokens.get(path)` は `None` を返すため、認証チェックがスキップされ、認証なしで任意のペイロードを投稿可能になる。攻撃者は Webhook エンドポイントに改ざんされたデータを送信して、ユーザーのハンドラーを任意実行できる。
あなたへの影響
pytonapi で Webhook 機能を本番運用中のチームは。
推奨:カスタムパス設定を使用していないか即時確認し、使用している場合は運用を一時停止した上でパッチ適用を優先すべき。