Beatnewsは11月3日(米国時間)、「Google's Project Zero reveals details of 'high severity' security flaw with Microsoft's GitHub」において、Googleのセキュリティ調査チーム「Project Zero」が、GitHubにおける重要度の高いセキュリティ上の欠陥を報告していると伝えた。この脆弱性はGitHub Actionsのワークフローに関連したもので、悪用されるとワークフロー実行中に任意の環境変数を設定され、結果として意図しない挙動を引き起こされるおそれがあるという。

GitHub ActionsはGitHubにおいて提供されているソフトウェア開発のワークフローを自動化するサービスである。事前に設定しておいたトリガーに応じて任意のワークフローを実行することによって、開発工程におけるビルドやテスト、デプロイなどといった作業を自動化することができる。ワークフローは、アクションと呼ばれる命令の組み合わせによって自由に作成できる。また、アクション自体も開発者が独自に用意することが可能となっている。

  • GitHub Actions

    GitHub Actions

Project Zeroの研究者による報告では、このGitHub Actionsのワークフローにセキュリティ上の欠陥が含まれているという。GitHub Actionsはアクションランナー(ワークフローからアクションを実行するプログラム)とアクションの間の通信チャンネルとして動作するワークフローコマンドと呼ばれる機能をサポートしている。アクションランナーはアクションが出力するSTDOUT(標準出力)のすべての行を解析してワークフローコマンドを探すため、信頼できないコンテンツを出力するアクションがあった場合、意図しない挙動が引き起こされる可能性があるという。

例として挙げられているのは環境変数を設定する「set-env」というワークフローコマンドで、ワークフローの一部としてこのコマンドが読み込まれた場合、以降のすべてのステップで有効となる任意の環境変数を設定することができる。この仕組みはインジェクション攻撃に対して非常に脆弱だと研究者は指摘している。

この問題の詳細は、Project Zerpの次のページで説明されている。

前述の環境変数インジェクションの問題は「CVE-2020-15228」として報告されており、GitHubを運営するMicrosoftでは、対応策として関連する「set-env」および「add-path」ワークフローコマンドを将来的に無効にする方針を明らかにしている。これらのコマンドの代替案としては、環境ファイルを使って環境変数やシステムパスを設定する方法が提示されている。詳細は次のセキュリティアドバイザリを参照のこと。