0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

認証オフで公開されたPraisonAIのAPIサーバー、3時間44分でスキャンされた

0
Posted at

はじめに

GitHubで★8.3k・フォーク1.3kを集めるマルチエージェントフレームワーク PraisonAI に、認証バイパスの脆弱性(CVE-2026-44338)が公開されました。GitHub Security Advisory が公開されてから わずか3時間44分後 に、脆弱なエンドポイントを探すスキャナーが観測されています。

この記事で分かること:

  • CVE-2026-44338 の根本原因(レガシーAPIサーバーの認証設計)
  • 公開から悪用までの実測タイムライン
  • 同種の「認証をデフォルトでオフにする」設計を自分のプロジェクトで避けるための注意点

対象読者は、OSSのAIエージェントフレームワークをローカルやサーバーにデプロイして使っている開発者です。

TL;DR

  • PraisonAI が同梱するレガシーFlask API サーバーは、AUTH_ENABLED = FalseAUTH_TOKEN = Noneハードコード しており、認証チェック関数 check_auth() が常に True を返す設計だった
  • 影響を受けるのは v2.5.6〜v4.6.33。v4.6.34 で修正済み
  • GitHub Advisory 公開(2026-05-11 13:56 UTC)から 3時間44分後 の17:40 UTCに、CVE-Detector/1.0 を名乗るスキャナーが該当エンドポイントを探索し始めたことが確認されている
  • CVSS 7.3(High)。認証なしで /agents の設定情報取得、/chat 経由でのワークフロー実行が可能だった

脆弱性の中身

GitHub Security Advisory(GHSA-6rmh-7xcm-cpxj)によると、問題は src/praisonai/api_server.py に実装されたレガシーAPIサーバーにあります。

  • AUTH_ENABLED = FalseAUTH_TOKEN = None がコード内に固定値として書かれており、外部から変更できない
  • 認証チェック用の check_auth() は、認証が無効化されている場合に無条件で True を返す実装になっていた
  • このサーバーを直接起動すると 0.0.0.0:8080 にバインドされ、ローカルホスト限定ではなくネットワーク上の誰からでもアクセス可能な状態になる

影響を受けたエンドポイントは次の2つです。

エンドポイント 影響
GET /agents 認証なしでエージェント設定のメタデータを取得できる
POST /chat message キーを含むJSONを送るだけで、設定済みの agents.yaml ワークフローを誰でも実行できる

CVSSベクターは CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L(スコア7.3・High)で、ネットワーク経由・攻撃条件低・権限不要・ユーザー操作不要という、悪用の敷居が低い組み合わせになっています。

公開から悪用までのタイムライン

このCVEが注目されたのは、深刻度そのものよりも 悪用までの速さ です。セキュリティ企業Sysdigの分析によると、GitHub Advisory が2026年5月11日 13:56 UTC に公開された後、わずか 3時間44分 後の17:40 UTCに CVE-Detector/1.0 を名乗るスキャナーが、公開直後のPraisonAIインスタンスに対して脆弱なエンドポイントの探索を開始したことが確認されています。

このスキャン活動が可能だった実質的な条件は次の2つです。

  1. POST /chat が認証なしでワークフローを実行できる設計だったこと
  2. デフォルトのバインド先が 0.0.0.0 であり、インターネット越しにアクセスできるインスタンスが実際に存在したこと

攻撃者がAI支援でスキャナーを自動生成しているのか、既存の脆弱性スキャン基盤にAdvisory情報を機械的に取り込んでいるだけなのかは明らかにされていませんが、いずれにしても「公開パッチノートを読んでから攻撃準備をする」猶予はほぼ無くなっているという実測値として参考になります。

影響と対策

認証なしで到達可能だった /chat エンドポイント経由では、次のような被害が想定されます。

  • 設定済みエージェントの列挙(内部構成の情報漏えい)
  • ワークフローの繰り返し実行によるAPI・モデル利用枠の消費(コスト被害)
  • バックエンドのワークフローが生成する出力データへのアクセス

対策はシンプルで、GitHub Advisory は次の2点を推奨しています。

  • v4.6.34以降にアップグレードする(脆弱なレガシーAPIサーバーの挙動が修正されている)
  • レガシーサーバーではなく、新しい serve agents コマンドを使う。こちらはデフォルトで 127.0.0.1 にバインドされ、--api-key による認証をサポートする

著者視点の発見ポイント

本稿の執筆にあたり筆者が着目したのは、この脆弱性が「複雑な実装ミス」ではなく「認証フラグの既定値をFalseにしていた」という、極めて単純な設計判断に起因している点です。多くのAIエージェントフレームワークはローカル開発を想定してデフォルト設定を緩くしがちですが、0.0.0.0 バインドと認証オフの組み合わせは、開発用途のつもりで動かしたサーバーがそのまま外部到達可能になるという典型的な事故パターンです。OSSのAIエージェントをコンテナやVPS上で動かす場合は、READMEのクイックスタート手順が想定する実行環境(ローカルのみか、外部公開もあり得るか)を必ず確認する価値があると言えます。

まとめ

  • PraisonAI(★8.3k)のレガシーAPIサーバーは、認証チェックがデフォルトで無効化される設計上の欠陥を抱えていた(CVE-2026-44338・CVSS 7.3)
  • 影響バージョンは v2.5.6〜v4.6.33。v4.6.34 で修正済み
  • GitHub Advisory公開からわずか3時間44分でスキャン活動が観測されており、パッチ適用までの猶予は短くなっている
  • 対策は v4.6.34 へのアップグレード、または 127.0.0.1 バインド+--api-key 認証に対応した serve agents コマンドへの移行

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?