本文へスキップ

CodeRabbitはオープンソースのコードに潜む問題を探しに出た。その取り組みはまだ続く

November 13, 2026

2 min read

1,100以上の公開リポジトリで1,200件以上のセキュリティ脆弱性を発見。オープンソースコミュニティの費用負担は$0。

CodeRabbit SecureのDeep Scanは、オープンソースのリポジトリで1,200件を超える脆弱性を発見し、メンテナーの費用負担なしで修正を支援しています

オープンソースのプロジェクトを保守しているなら、今や相手にしているのは、AIエージェントを使ってあなたのコードの脆弱性を見つけ、悪用できる攻撃者です。AIエージェントはさまざまな攻撃経路を試し、うまくいかなければ別の方法に切り替え、侵入の一部を数分、場合によっては数秒で完了できます。これにより、攻撃者はより多くの弱点をより速く探れるようになり、メンテナーは修正をより早く提供するよう迫られます。

最近のインシデントを見ると、この対応がどれほど複雑になり得るかが分かります。10月21日、PHPは2件の重大な脆弱性を修正する緊急リリースを公開しました。これらの脆弱性により、一部のPHPサーバーでは認証されていない攻撃者によるコード実行が可能でした。PHP Foundationは、互換性とのトレードオフ、限られたリソース、難しい判断によって、それまでの数か月間、修正が何度も停滞した経緯を説明しています。

同じ日、侵害されたLiteLLMのリリースがPyPIとDockerに公開されました。そこには、クラウドの認証情報、秘密鍵、AIツールのログイン情報を盗むマルウェアが含まれていました。LiteLLMの根本原因分析によると、攻撃の起点は、5月に公開リポジトリで露出した後も有効なままだった管理用キーでした。同じ週には、Node.js、Bun、.NETが、それぞれに同梱されたライブラリにある同じBrotliのメモリバグ、CVE-2026-111497を修正していました。

隠れた脆弱性を見つけるのは、以前から簡単なことではありませんでした。メンテナーは攻撃者より先に脆弱性を見つけ、既存の機能を損なわずにユーザーを保護する修正を開発、テスト、リリースする必要があります。従来のルールベースのチェックは今も役立ちますが、コードの経路がどう関わり合い、アプリケーションに必要な防御が実際に適用されているかを調べる作業の代わりにはなりません。

そこで役立つのが、CodeRabbit Secure Deep Scanです。リポジトリ全体のコミット済みコードを調べ、攻撃対象領域をマッピングし、コードの経路をたどって潜在的な脆弱性を調査します。別の検証エージェントが、根拠となる情報、到達可能性、既存の防御策を確認します。対応している検出結果については、Fix with AIがパッチを用意します。メンテナーはそれをレビュー、テスト、マージでき、レポートの調査から根本的な問題の修正へと進められます。

スキャンで見つかったこと

10月23日から11月3日までに、Deep Scanは1,125の公開リポジトリで、Highが1,200件、Criticalが15件、合計1,215件のセキュリティ上の検出結果を特定しました。そのうち少なくとも75件は修正されています。

1マスが1件の検出結果を表します。緑は修正済みの75件、グレーはキャンペーン合計に含まれるその他の検出結果です。

ast-grepの開発者であるHerrington Darkholme氏は、利用した感想を次のように述べています。

ast-grepに対してDeep Scanを試し、その精度に感心しました。報告する前に脆弱性を実証してくれるので、どの検出結果も、はるかに対応しやすくなります。

— Herrington Darkholme、ast-grep開発者

意図的に脆弱性を持たせたOWASPデモでの、重大なSQLインジェクションの検出結果。到達可能性と悪用可能性の詳細も確認できます。

CodeRabbit Secureが行うこと

Deep Scanは、レガシーコードも含め、OSSリポジトリ全体のコードとインフラ構成を調査します。ワークフローは4つの段階で構成されています。

  1. Map。 セキュリティに関わるエントリーポイント、信頼境界、アクセス制御、機密性の高い操作、構成を特定します。
  2. Hunt。 関連するコードの経路をたどり、チェックの欠落や、コンポーネントをまたいだ前提も含め、疑われる脆弱性を調査します。
  3. Verify。 別の検証エージェントが、参照されたソースを改めて開き、到達可能性と既存の防御策を確認し、悪用に必要な条件が成立するかを検討します。
  4. Fix。 対応している検出結果について、開発者がレビューできる修正パッチを生成します。

結果には、深刻度、根拠となるコード、利用可能な修正アクションが表示されます。初回のフルスキャン後は、増分のdelta scanによって、変更されたファイルや、レビュー情報が古くなった領域、未検証の領域を再確認できます。

意図的に脆弱性を持たせたOWASPデモリポジトリのアタックサーフェスマップ。

Deep Scanはルールベースの静的解析を補完する

静的解析は、関数をまたいでデータを追跡し、安全でないデータの流れを特定できます。成熟したツールは、フレームワークや複雑なアプリケーションの動作もモデル化します。難しいのは、設定済みのチェックでは十分に捉えきれない、アプリケーション固有のセキュリティ要件を考慮することです。攻撃者はAIエージェントを使って既存の防御策を回避する方法を探せます。私たちも、コードを守る方法を進化させる必要があります。

ドキュメントを返す前にユーザーを認証するエンドポイントを考えてみてください。認証によって分かるのは、誰がリクエストを送ったかです。しかし、アプリケーションは、そのユーザーに対象のドキュメントへのアクセス権があることも確認しなければなりません。この所有者のチェックは、ルート、サービス、データベースクエリのいずれかにあるかもしれません。

Deep Scanは、こうした関係を調査します。必要な制御を探し、到達可能なリクエスト経路をたどり、別の防御策によって疑われる脆弱性が成立しなくなるかを確認します。報告される各検出結果には、根拠となるコードと判断理由が含まれるため、メンテナー自身がその結論を確認できます。

このアプローチについては、Why it’s time to fight AI with AIで詳しく説明しています。Deep Scanは、すでに使っているセキュリティツールを補い、設定済みのチェックでは捉えきれない可能性があるアプリケーション固有の欠陥を調査します。静的解析と依存関係スキャンは、引き続きワークフローの一部として活用してください。

Security blast radiusは、サンプルのプルリクエストで、コードのつながりと影響を受ける可能性があるコンポーネントを示しています。

よく見つかったセキュリティ脆弱性

Deep Scanがオープンソースのリポジトリでよく発見した脆弱性には、次のようなものがあります。

  • 所有者のチェックの欠落: エンドポイントがユーザーのサインインは確認していても、特定のレコードを閲覧・変更する権限までは確認していません。ルートには認証ミドルウェアが存在するため、レビューでも見落とされがちです。
  • ブラウザスクリプトの安全でない処理: 信頼できない入力が、周囲のコードが想定するエスケープ処理を受けずにページに渡され、クロスサイトスクリプティングが可能になります。
  • 不十分な身元確認: 送信元を十分に検証しないまま、トークン、署名、呼び出し元を受け入れています。
  • ファイルパスの安全でない処理: ユーザーが指定したパスやアーカイブ内のエントリが、本来のディレクトリの外へ抜け出せます。
  • セッションの失効チェックの不備: 有効期限が切れた、または失効されるべきセッションやトークンが、有効なまま残っています。
  • 情報の漏えい: レスポンス、エラー、ストレージから、本来アクセスできない相手にデータが開示されます。

検出から修正へ

Deep Scanが脆弱性を報告するとき、検出結果には影響を受けるコード、判断理由、修正の推奨事項が含まれます。メンテナーはその根拠を使い、調査を最初からやり直さずにパッチの作成を始められます。

対応している検出結果では、Fix with AIが情報をCodeRabbit Agentに渡します。CodeRabbit Agentはパッチを用意し、レビュー用のプルリクエストを作成します。タスクの進行を追い、変更を依頼し、差分を確認できます。

別のコーディングエージェントを使いたい場合は、Share → For agentsを選ぶと、検出結果の詳細と推奨事項を、それだけで内容が分かるMarkdownとしてコピーできます。普段使っているエージェントに貼り付け、自分のリポジトリで修正を実装するよう依頼してください。

100万ドルの無料Deep Scanキャンペーンは終了しましたが、オープンソースへの1,000万ドルを超える支援は続きます。Deep Scanを初めて試すオープンソースプロジェクトに、1回分の無料Deep Scanを提供します。この特典ではスキャン費用を最大1,000ドルまで負担し、対象となるにはプロジェクトに2人以上のメンバーが必要です。

初回のDeep Scanは無料です。app.coderabbit.ai/securityから始めるか、oss@coderabbit.aiまでご連絡ください。

著者について

共有

Share on XShare on LinkedinShare on Reddit