GitHubは、Googleのセキュリティ研究チームであるProject Zeroによって3カ月以上前に報告されていた深刻なセキュリティ脆弱性にようやく対処した。
この問題は、GitHubの開発者向けワークフロー自動化ツールである「GitHub Actions」機能に存在しており、Project ZeroのリサーチャーであるFelix Wilhelm氏の言葉を借りると、これにより同ツールは「インジェクション攻撃に対して極めて脆弱なものになる」という。GitHub Actionsは、Actionsランナーと実行済みアクションの間のコミュニケーションチャネルとして動作する、ワークフローコマンドと呼ばれる機能をサポートしている。
Project Zeroは通常の場合、発見した脆弱性を報告し、90日経過した時点でその脆弱性を公開する。しかし今回のケースでは、Googleの設定した1回限りの猶予期間である14日後、すなわち11月2日になっても問題が解決されなかった。
GitHubは、情報の開示延長期限が到来する1日前に、脆弱性のある同コマンドの無効化を11月2日までに実施する計画はないとGoogleに伝えた上で、脆弱性の修正ではなく、顧客への通知とともに、将来的な修正期限となる「確固たる日付」を決定するための48時間の猶予を追加で求めた。しかしGoogleはこの問題の詳細を、GitHubへの報告後104日目となる同日に公開した。
GitHubは16日になってようやく、Wilhelm氏が示唆した通り、同機能の古いランナーコマンドである「set-env」と「add-path」を無効化することでこの問題を回避した。つまりこの修正は、Wilhelm氏が問題を公開した2週間後に実装されたことになる。
Wilhelm氏はバグレポートの中で、GitHubのActionsランナーコマンドの以前のバージョンで提供されていた「set-env」について、ワークフロー手順の一部として任意の環境変数を定義するために使用できるという点で、セキュリティ上の観点から見ると興味深いものだったとコメントしている。
同氏は「この機能の大きな問題は、インジェクション攻撃に対して極めて脆弱だというところにある。ランナープロセスは、ワークフローコマンドを見つけ出すために標準出力(STDOUT)に出力された全ての行を解析するため、実行処理の一環として信頼できないコンテンツを出力するGitHubアクションは全て脆弱なものとなる」と記している。
「ほとんどのケースにおいて、任意の環境変数を設定する能力によって、他のワークフローが実行される際にリモートコード実行(RCE)を引き起こせるようになる」(Wilhelm氏)
GitHubは現在、脆弱性を抱えたこれら2つのコマンドを無効化しており、Wilhelm氏は、同レポートをアップデートし、この問題が修正されたことを報告している。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。