2026年10月12日

GitHubの「Fuzzing Taskflow」とは?C/C++の脆弱性発見をAIエージェントで自動化

室谷室谷代表取締役
GitHubが、C/C++プロジェクト向けの自律型ファジングパイプライン「Fuzzing Taskflow」を発表したんですよね。GitHub Security Labが2026年9月24日に公開したブログで、仕組みから使い方までかなり具体的に書かれています。
テキトー教師テキトー教師DotAI 認定講師
Fuzzing Taskflowは、GitHub Security Labが2026年9月24日に発表した、C/C++リポジトリ向けの自律型ファジングパイプラインです。GitHubリポジトリを指定するだけで、エントリポイントの特定、ビルド解析、ハーネス作成、AFL++の実行、カバレッジの読み取り、ハーネスの改善、クラッシュのトリアージ、脆弱性レポートの作成までを人手なしで行うとされています。
室谷室谷代表取締役
これはGitHub Security Labの「Taskflow Agent」というフレームワークの上に作られているんですよね。Taskflow Agent自体は2026年1月のブログでCodeQLアラートのトリアージに使われて、約30件の実脆弱性の発見が報告されている実績がある、と。
テキトー教師テキトー教師DotAI 認定講師
そうなんですよ。単に新しいツールが出たという話じゃなくて、「LLMエージェントにセキュリティ作業のどこまでを任せられるか」という同Labの一連の実験の延長線上にある発表なんです。

GitHub Fuzzing Taskflowとは?何が発表されたのか

まとめ
GitHub Fuzzing Taskflowとは
  • 「ファジングを便利にするツール」ではなく「ファジング運用に必要な人間の作業をどこまでエージェントに渡せるか」という問いから作られた
  • 公式ブログは継続的ファジングを「魔法の解決策ではない」と明言。OSS-Fuzzに長年登録されたプロジェクトでも重大なバグが残り、理由はほぼ常に同じ
  • 理由は「人間が足りない」こと。カバレッジ監視、未到達コードへの新ハーネス作成、クラッシュの仕分けというループに人が必要だった
  • ファジングにはhuman in the loop(人間の介在)が不可欠で、その人間の作業をLLMエージェントに引き渡す試みとして位置づけられる
  • 発表元はGitHub Security Lab。基盤はTaskflow Agentで、パイプラインは一連のタスクフローとして表現されエージェントが端から端まで実行
  • 単体の新製品ではなく、Taskflow Agentという既存フレームワーク上に組まれた「ファジング用のタスクフロー群」。YAMLとMCPツールという設計が効いてくる
室谷室谷代表取締役
まず押さえておきたいのが、これは「ファジングを便利にするツール」というより、「ファジング運用に必要な人間の作業をどこまでエージェントに渡せるか」という問いから作られたものだという点なんですよね。
テキトー教師テキトー教師DotAI 認定講師
そのとおりです。公式ブログでも、継続的ファジングは「魔法の解決策ではない」と明言されています。

OSS-Fuzzに長年登録されているプロジェクトでも重大なバグが残ることがあり、その理由はほぼ常に同じだと。
室谷室谷代表取締役
理由が「人間が足りない」という話なのがつらいところで。カバレッジを監視して、誰も到達していないコードに新しいハーネスを書いて、出てきたクラッシュを仕分けする。

このループに人が必要だった、と。
テキトー教師テキトー教師DotAI 認定講師
つまりファジングには「human in the loop(人間の介在)」が不可欠だったわけです。Fuzzing Taskflowは、その人間の作業をLLMエージェントに引き渡す試みとして位置づけられています。
室谷室谷代表取締役
発表元はGitHub Security Labで、基盤はTaskflow Agent。パイプラインは一連のタスクフローとして表現され、エージェントが端から端まで実行する形になっているんですよね。
テキトー教師テキトー教師DotAI 認定講師
はい。ここで大事なのは、Fuzzing Taskflowが単体の新製品というより、Taskflow Agentという既存フレームワーク上に組まれた「ファジング用のタスクフロー群」だという構造です。

だからこそ、後で説明するYAMLとMCPツールという設計が効いてきます。

Fuzzing Taskflowでできること——ハーネス作成から脆弱性レポートまで

Fuzzing Taskflowでできること(ハーネス作成から脆弱性レポートまで)
  1. 01
    エントリポイントの特定
    GitHubリポジトリを指定すると適切なエントリポイントを特定
  2. 02
    ビルドシステムの解析
  3. 03
    ハーネスの作成
  4. 04
    AFL++の実行
  5. 05
    カバレッジレポートの読み取り
    従来は人間が担当。未到達のブランチを探す作業
  6. 06
    ハーネスの改善
    従来は人間が担当。新しいハーネスや新しい入力を書いてカバレッジを改善
  7. 07
    クラッシュのトリアージ
  8. 08
    ユニークなバグごとの脆弱性レポート作成
    パイプラインの終端。人間が読める形にまとめるところまで一気通貫
室谷室谷代表取締役
できることの範囲がかなり広いんですよね。GitHubリポジトリを指定すると、まず適切なエントリポイントを特定して、ビルドシステムを解析して、ハーネスを書いて、AFL++を回して、カバレッジレポートを読んで、ハーネスを改善して、クラッシュをトリアージして、ユニークなバグごとに脆弱性レポートを書く、と。
テキトー教師テキトー教師DotAI 認定講師
整理するとこうです。
  • エントリポイントの特定
  • ビルドシステムの解析
  • ハーネスの作成
  • AFL++の実行
  • カバレッジレポートの読み取り
  • ハーネスの改善
  • クラッシュのトリアージ
  • ユニークなバグごとの脆弱性レポート作成
室谷室谷代表取締役
このうち従来「人間がやっていた」と公式ブログが明言しているのが、カバレッジを見て未到達のブランチを探す作業と、新しいハーネスや新しい入力を書いてカバレッジを改善する作業なんですよね。
テキトー教師テキトー教師DotAI 認定講師
そこをエージェントに渡すのが今回の核心です。しかもレポート作成まで含まれているのが大きい。

トリアージした結果を人間が読める形にまとめるところまで一気通貫でやる、という設計になっています。
室谷室谷代表取締役
ただ、ここで注意したいのは、これは「脆弱性を自動で修正する」ものではないということですよね。あくまで発見とレポートまで。

修正やパッチの話は今回のソースには出てきません。
テキトー教師テキトー教師DotAI 認定講師
そうですね。公式ブログの説明でも、パイプラインの終端は「ユニークなバグごとの脆弱性レポート」です。

そこから先は人間が確認する前提だと読めます。

なぜ今、ファジングの自動化なのか——従来の「人間の介在」という課題

まとめ
ファジング自動化の背景と課題
  • ファジングは新しい技術ではなく、ランダム/変則的な入力を大量に与えてクラッシュを検出する手法
  • C/C++のようなメモリを直接扱う言語でバッファオーバーフローなど重大な脆弱性の発見に有効
  • 中核はAFL++のようなファザーで、カバレッジを手がかりにコードを深く探索する
  • 人間依存だった3つの工程: カバレッジ監視、未到達コードへの新ハーネス作成、クラッシュの仕分け
  • 継続的に回すほど新コード・新未到達領域が出るため、継続的に人間が張り付く必要があった
  • OSS-Fuzzに長年登録されているプロジェクトでも重大なバグが残る=人が足りていない領域がある証拠
  • LLMがコードの意味や論理を扱えるようになり、人間なら分かる判断をエージェントに寄せられるようになった
  • 前身の取り組みではツールは基本的なファイル取得と検索のみ(静的/動的解析はCodeQLのアラート生成以外未使用)でも約30件の実脆弱性を発見
  • 「ツールは最小限、判断はLLM」という思想がFuzzing Taskflowにも流れ込んでいる
室谷室谷代表取締役
ファジングそのものは新しい技術ではないんですよね。ランダムあるいは変則的な入力を大量に与えてクラッシュを検出する手法で、C/C++のようにメモリを直接扱う言語ではバッファオーバーフローなど重大な脆弱性の発見に有効とされています。
テキトー教師テキトー教師DotAI 認定講師
中核になるのがAFL++のようなファザーで、対象コードのどこを実行したかを示す「カバレッジ」を手がかりに、より深くコードを探索します。ここまでは従来どおりです。
室谷室谷代表取締役
問題はその先で。カバレッジを監視して、誰も到達していないコードに新しいハーネスを書いて、出てきたクラッシュを仕分けする。

この3つが人間依存だったわけです。
テキトー教師テキトー教師DotAI 認定講師
しかもこれは「一度やれば終わり」ではないんですよ。ファジングを継続的に回すほど、新しいコードが入ってきて、新しい未到達領域が出てくる。

だからこそ「継続的ファジング」と言いながら、継続的に人間が張り付く必要があった。
室谷室谷代表取締役
OSS-Fuzzに長年登録されているプロジェクトでも重大なバグが残る、というのがその証拠なんですよね。登録しているのに、人が足りていない領域がある、と。
テキトー教師テキトー教師DotAI 認定講師
ここが「なぜ今か」の答えです。LLMがコードの意味や論理をある程度扱えるようになったことで、従来は正規表現やパターンマッチでは捉えきれなかった「人間なら分かる」判断をエージェントに寄せられるようになった。

ファジングのボトルネックだった人間の介在を、そこに置き換えにいく流れなんです。
室谷室谷代表取締役
実際、Taskflow Agentの前身の取り組みでは、LLMに与えたツールは基本的なファイル取得と検索だけで、静的な解析ツールや動的な解析ツールはCodeQLのアラート生成以外に使っていない、と書かれています。それでも約30件の実脆弱性が見つかった、と。
テキトー教師テキトー教師DotAI 認定講師
この「ツールは最小限、判断はLLM」という思想が、Fuzzing Taskflowにもそのまま流れ込んでいます。

Fuzzing Taskflowの仕組み——LLMが判断し、MCPツールが実行する

室谷室谷代表取締役
ここが一番おもしろいところなんですけど、アーキテクチャが3層に分かれているんですよね。
テキトー教師テキトー教師DotAI 認定講師
整理するとこうです。
  • シェルドライバ(run_fuzzing.sh)がパイプラインの各段階をつなぐ
  • 段階ごとのタスクフローYAML(実質はプロンプト)が、各ステップでLLMエージェントに何をすべきかを伝える
  • MCPツール群が実際の作業を行う(AFLの実行、ハーネスのコンパイル、クラッシュの保存、カバレッジレポートの読み取りなど)
室谷室谷代表取締役
設計原則がはっきりしていて、「LLMエージェントが判断を所有し、MCPツールが実行を所有する」という分離なんですよ。エージェントは何をファズするか、どんなハーネスを書くか、次にどのカバレッジギャップを追うかを決める。

ツールはrun_afl_forやcompile_harnessといったプリミティブを提供するだけ。
テキトー教師テキトー教師DotAI 認定講師
エージェントはAFLやclangを直接呼ばない、というのがポイントです。ビルディングブロックを組み合わせてパイプラインを構成する。

この分担が、判断の再現性と実行の安全性を分けて考えられるようにしています。
室谷室谷代表取締役
状態は全部SQLiteデータベース(fuzz_context.db)に置かれるので、各段階がメモリ上でデータを渡し合うことはなく、データベース経由だけで受け渡す、と。
テキトー教師テキトー教師DotAI 認定講師
もう一つ細かいけど重要なのが、各ハーネスが2回ビルドされる点です。AFLのエッジ計装はファザーを導くのには優れているけれど、人間が読めるカバレッジレポートには向かない。

だからすべてのハーネスが.aflバイナリ(afl-clang-lto -fsanitize=address,undefinedでビルド)と.covバイナリ(clang -fprofile-instr-generate -fcoverage-mappingでビルド)の両方になる。
室谷室谷代表取締役
.aflバイナリがファジングを担当して、.covバイナリが後からAFLのキューを再生して、実際のソース行とブランチのカバレッジを出す、という役割分担なんですよね。
テキトー教師テキトー教師DotAI 認定講師
この二重ビルドがあるからこそ、「カバレッジを読む」という人間の作業をエージェントが代替できるわけです。
室谷室谷代表取締役
あと、カバレッジフィードバックループの時間予算がおもしろくて。30秒 → 60秒 → 120秒 → 240秒 → 480秒 → 960秒(約32分/ターゲット)と、毎回倍々に増えていくんですよ。
テキトー教師テキトー教師DotAI 認定講師
狙いは明確で、序盤は取れるカバレッジが多いので安く短いラウンドを回し、終盤は難しいガードを突破するのに時間がかかるので長いラウンドにする。人間が手でやるときの感覚をそのままルール化したような設計です。
室谷室谷代表取締役
そして停止条件がプラトー検出で、2回連続のイテレーションでカバレッジの伸びが一定以下になったら止める、と。
テキトー教師テキトー教師DotAI 認定講師
未到達ブランチを見つけたときのエージェントの選択肢も整理されていて、未到達ブランチに届くための新しいシードを追加する、ハーネスのソースを編集して追加のAPIを呼ぶ、ガードが比較しているマジック定数をAFL辞書に自動で足す、コールドなエラーパスやベンダーコードなら追わずにスキップする、という数個のアクションから選ぶ形になっています。
室谷室谷代表取締役
ここ、地味にすごいんですよね。「追わない」という判断も選択肢に入っているのが、実運用を分かっている感じがして。
テキトー教師テキトー教師DotAI 認定講師
ええ。全部のギャップを追うのではなく、費用対効果で捨てる判断まで含めてエージェントに渡している。

これは手動ワークフローをそのまま写しているからこそ出てくる設計です。

Fuzzing Taskflowの使い方・始め方——対象リポジトリと実行環境

室谷室谷代表取締役
使い方はかなりシンプルにまとまっていて、GitHubSecurityLab/seclab-taskflows-fuzzing に行ってCodespaceを立ち上げて、スクリプトを実行するだけなんですよね。
テキトー教師テキトー教師DotAI 認定講師
コマンドはこうです。
code
./scripts/fuzzing/run_fuzzing.sh PROJECT
室谷室谷代表取締役
例えばxzならこうですね。
code
./scripts/fuzzing/run_fuzzing.sh tukaani-project/xz
テキトー教師テキトー教師DotAI 認定講師
引数はGitHubのowner/repoスラッグだけ。あとはエージェントが前処理を自分でやります。

AFLなどのソフトウェアのインストール、リポジトリのクローン、コード内で最も関連性の高い関数の特定、それらの関数のファズターゲットの作成まで。
室谷室谷代表取締役
長いキャンペーンに入る前に軽くスモークテストしたいなら、小さめの対象を指定するといいと。公式ブログではcJSONが例に挙げられています。
code
./scripts/fuzzing/run_fuzzing.sh DaveGamble/cJSON
テキトー教師テキトー教師DotAI 認定講師
ここで必ず伝えておきたい警告があります。このタスクフローは、afl-fuzz、clang、そしてLLMが選んだ任意のビルドコマンドを、コンテナを挟まずにホスト上で直接実行します。
室谷室谷代表取締役
つまりプロンプトインジェクションを受けたエージェントは、原理的にはユーザーができることは何でもできてしまう、と。だから使い捨ての環境(Codespaceや捨てる前提のVM)で、昇格した権限なしで実行してください、という注意が明記されているんですよね。
テキトー教師テキトー教師DotAI 認定講師
これはセキュリティツールを扱う上で非常に重要な注意点です。便利さと引き換えに、実行環境の隔離を自分で担保する必要がある。

講座でも、こういう「エージェントに実行権限を渡す系」のツールは必ず隔離環境で、と伝えています。
室谷室谷代表取締役
モデル選択についても書かれていて、既定はClaude Sonnet 5。これは内部テストを問題なく通過したからだそうで、変更したい場合はsrc/seclab_taskflows_fuzzing/configs/model_config.yamlを編集する、と。
テキトー教師テキトー教師DotAI 認定講師
フロンティアモデルの中には出力にセキュリティガードレールを課すものがある、という文脈で既定モデルが選ばれている、という説明になっています。
室谷室谷代表取締役
あと、これはオープンソースとして公開されている点も見逃せないですよね。seclab-taskflow-agentとseclab-taskflowsの両リポジトリがオープンソースで、誰でも同様のタスクを実行するLLMタスクフローを開発できる、と。
テキトー教師テキトー教師DotAI 認定講師
ライセンスの詳細については、今回のソースでは明らかにされていません。リポジトリを確認する必要があります。

従来のファジングと何が変わる?自動化される範囲と限界

室谷室谷代表取締役
ここまで読むと「全部自動化されるのか」と思われがちなんですけど、公式ブログはかなり慎重に書いていて。継続的ファジングは魔法の解決策ではない、という前提から始まっているんですよね。
テキトー教師テキトー教師DotAI 認定講師
自動化される範囲を整理するとこうです。
  • 自動化される: エントリポイント特定、ビルド解析、ハーネス作成、AFL++実行、カバレッジ読取、ハーネス改善、クラッシュのトリアージ、脆弱性レポート作成
  • 人間が担う前提として残る: 実行環境の隔離、レポートの最終確認、修正の判断
室谷室谷代表取締役
特に実行環境の隔離は、公式が明示的に「使い捨て環境で」と書いている以上、人間側の責任として残っている部分です。
テキトー教師テキトー教師DotAI 認定講師
それと、Taskflow Agentの前身の取り組みでは、LLMにエクスプロイトを作らせて結果を検証させる指示はしておらず、実行環境も与えていなかった、と書かれています。それでも結果はかなり正確だった、という報告です。
室谷室谷代表取締役
つまり「自動検証まではしていない」というのが現時点の正直な姿なんですよね。レポートは出るけれど、それが本当に悪用可能かどうかの最終判断は人間がやる、と。
テキトー教師テキトー教師DotAI 認定講師
あと、前身の取り組みでは、レポートのフォーマットと情報の一貫性をチェックして、情報が欠けていたり矛盾していたりする場合はハルシネーションなどの可能性が高いとしてレポートを却下する、という検証ステップも入っていました。
室谷室谷代表取締役
そういう「出力をそのまま信じない」設計が組み込まれているのは、実運用に乗せる上でかなり現実的ですよね。
テキトー教師テキトー教師DotAI 認定講師
さらに、GitHub Issueを作って人間がレビューできるチェックポイントにする、という設計も引き継がれています。レビューで見つかった誤検知の理由を記録しておくと、次回以降エージェントがそれを踏まえて判断できるようになる、という学習の仕組みです。
室谷室谷代表取締役
ここは「エージェントが勝手に学習する」というより、人間のレビュー結果をリポジトリ固有の知識としてプロンプトに足していく運用なんですよね。
テキトー教師テキトー教師DotAI 認定講師
そのとおりです。だからこそ、いきなり全自動で任せるというより、まず小さめのリポジトリでスモークテストして、レポートの質を見ながら運用に組み込んでいく、という始め方が現実的だと思います。
室谷室谷代表取締役
MYUUUでも、エージェントに実行系の権限を渡すときは、まず隔離環境で小さく試すところから始めています。いきなり本番リポジトリに向けるのは危険すぎますからね。
テキトー教師テキトー教師DotAI 認定講師
講座でも受講生さんによく言うんですが、こういうツールは「何を自動化して、何を人間に残すか」を先に決めてから触るのが大事です。今回のFuzzing Taskflowは、その線引きが公式ドキュメントにかなり明示されている珍しい例だと思います。

よくある質問

室谷室谷代表取締役
ここからは、検索で気になりそうな点を整理していきますね。
テキトー教師テキトー教師DotAI 認定講師
まず、Fuzzing Taskflowは誰が提供しているのか。これはGitHub Security Labが発表・提供しているもので、GitHub Security Lab Taskflow Agentというフレームワークの上に構築されています。
室谷室谷代表取締役
対応している言語はC/C++です。公式ブログでもC/C++プロジェクト向けの自律型ファジングパイプラインと明記されています。
テキトー教師テキトー教師DotAI 認定講師
使うのに料金はかかるのか、という点については、今回のソースでは明らかにされていません。リポジトリがオープンソースとして公開されていること、Codespaceから始められることは書かれています。
室谷室谷代表取締役
日本で使えるかという点も、今回のソースでは明らかにされていません。ただしGitHubリポジトリを指定してCodespaceで実行する形なので、リポジトリにアクセスできる環境であれば同じ手順になる、というのが読み取れる範囲です。
テキトー教師テキトー教師DotAI 認定講師
既定モデルはClaude Sonnet 5で、変更したい場合はmodel_config.yamlを編集する、というのが公式の説明です。
室谷室谷代表取締役
どんなリポジトリに向くのかというと、公式ブログではまず小さめの対象でスモークテストするのが推奨されていて、例としてcJSONが挙げられています。xzのような実プロジェクトの例も示されています。
テキトー教師テキトー教師DotAI 認定講師
実行時の注意点は、コンテナを挟まずホスト上でafl-fuzzやclang、LLMが選んだビルドコマンドを直接実行するため、使い捨て環境で昇格権限なしに実行すること。ここは必ず守りたいところです。
室谷室谷代表取締役
カバレッジギャップの追跡方法については、各イテレーションでAFLを時間予算分回して、キューを.covバイナリに対して再生して実際のカバレッジレポートを取得し、未到達ブランチのリストを読んで、シード追加・ハーネス編集・辞書拡充・スキップのいずれかを選ぶ、という流れになっています。
テキトー教師テキトー教師DotAI 認定講師
停止条件はプラトー検出で、2回連続のイテレーションでカバレッジの伸びが一定以下になったら止まる、という設計です。
室谷室谷代表取締役
ライセンスや依存関係の詳細については、今回のソースでは明らかにされていません。seclab-taskflow-agentとseclab-taskflowsのリポジトリを直接確認するのが確実です。
テキトー教師テキトー教師DotAI 認定講師
最後に、これは「脆弱性を自動修正する」ものではないという点も改めて。パイプラインの終端はユニークなバグごとの脆弱性レポートの作成で、そこから先の判断は人間に残されています。
室谷室谷代表取締役
セキュリティの自動化は「どこまで任せるか」の設計がすべてですからね。Fuzzing Taskflowは、その線引きをかなり丁寧にドキュメント化してくれている事例として、読む価値があると思います。

Related

関連記事

New Articles

新着記事

ガイド

v0とは?VercelのAIエージェントの料金・使い方と本番投入前の注意点

2026年10月12日
室谷テキトー教師
ガイド

QuillBotとは?機能・料金・日本語対応と使い方をわかりやすく解説

2026年10月12日
室谷テキトー教師
ガイド

Gemini Sparkとは?できること・料金・使い方を公式情報で整理

2026年10月12日
室谷テキトー教師
ガイド

Replitとは?無料で使える範囲と最新料金、Agentの使い方

2026年10月12日
室谷テキトー教師
ニュース

ElevenLabsの「Brand Kit」とは?ElevenCreativeに追加されたブランド一貫性の仕組み

2026年10月12日
室谷テキトー教師
ガイド

Notion AIとは?できること・料金・無料の範囲とChatGPTとの違い

2026年10月11日
室谷テキトー教師
ガイド

Gemini Enterpriseで何ができる?料金と導入の流れを整理

2026年10月11日
室谷テキトー教師
ガイド

Plaud Note Proの料金と実力|本体価格だけで判断しない選び方

2026年10月11日
室谷テキトー教師
ガイド

Geminiの動画生成は無料で使える?料金とGoogle Vidsの無料ルートをまとめ

2026年10月11日
室谷テキトー教師
ガイド

Bing Image Creatorで無料の範囲はどこまで?日本語プロンプトと商用利用の最新事情

2026年10月11日
室谷テキトー教師

Join

AIプレナーになる。

入会は審査制です。いまの事業と、AIで何を動かしたいのかを聞かせてください。

参加を申請する