GITHUBの警告メールを解決してみよう
いつの頃からかGithubからセキュリティや依存関係に関する警告メールが届くようになった。調べてみて一番古い警告が 2021年7月14日だ。
A security advisory…の件
件名が自分のgithubアカウント名で始まって、続いて「A security advisory…」が、その警告メールだ。
メールはhtmlで表されていて、可愛らしいアイコンと警告内容の概略と、その詳細を記述したwebページに移動するボタンがその内容だ。デザイナーが監修してくれるとメール本文もお洒落だ。
最初のセキュリティ警告の概要は「Regular Expression Denial of Service in Addressable templates」だ。REGXPでDOSが可能らしい。すごい隙間を見つける人がいるな、世の中には。
詳細ボタンでgithubの詳細解説ページを読むと、RubyGemsのaddressableのバージョン 2.3.0 - 2.7.0 を利用していると、REGXP-DOS の危険性があるというものだ。
今日(2023年3月12日)まで、セキュリティ警告を6件受け取っていた。
古い順に
- addressable:2021-7-14
- commonmarker:2022-3-4
- tzinfo:2022-7-22
- @xmldom/xmldom:2022-11-3
- json5:2023-1-10
- ua-parser-js:2023-1-28
全部異なる警告だ。過去の警告は重ねて警告しないようになっているのだろうか。
[GitHub] Your Dependabot alerts…の件
このように始まる警告メールの内容もhtmlで表されていてデザインも監修されている。内容はやはりセキュリティの危険性の警告で、利用中パッケージの名前と共に現在のバージョンと更新すべきバージョン、Githubで管理しているセキュリティ危険性の管理番号まで記されている。利用中のパッケージということで、危険なパッケージに依存している、という警告だ。先の「A security advisory…」との違いは、件名に、いつからいつまでに見つかった、とGithubが脆弱性を発見した期間が明記してあるところだろうか。先の「A security advisory…」は、何をきっかけに発見したのだろうか。ブログをコミットした日時とは合わない。Githubのセキュリティ危険性管理で世間の脆弱性を登録したときかもしれない。
詳細ボタンでgithubの詳細解説ページを読むと、利用中パッケージのリストで、一行にどこでどのような脆弱性かが一覧されている。全て expos/yarn.lock だった。最古のこの警告メールが2022年3月1日で、この頃にexpoを試したのを覚えている。
[cat73220/HW] Your repository has dependencies…の件
これは、3通だけ届いている。最後のが今日(2023年3月12日)受け取ったメールだ。
- 2021-10-30
- 2022-4-6
- 2023-3-12
全て、githubにpushした日だと思う。今日のは確実にそうだ。
セキュリティ脆弱性について、あらゆるタイミングで報告していてくれたのだな。オープンソースのセキリティ脆弱性がここまで徹底して解析されて、世間に行き渡っているのが実感できる。安心を勝ち取る、ということだね。
解決
expoに関係する脆弱性は「yarn upgrade –emoji true」で解決だ。冒頭の「A security advisory…」の6件はjekyllに関するもので「bundle update」で解決した。
githubにデプロイしても「[cat73220/HW] Your repository has dependencies…」警告メールは受信しなかった。
gitub/actions/deploy.ymlの実行で警告
注意が必要だったのはこの警告だ。メールで警告されたりはしない。actionsの実行が完了した時点で、そのページで警告された。「node12はもうじき利用不可能になるから、node16に換えるように」というものだ。
警告されていることはわかるのだが、見に覚えがないので当惑する。githubは警告の文が明確で親切だ。そのページの警告にどこのなにを参考にすればよいかまで記載されている。actionsの開発者向けと利用者向けに対応が別れていた。親切だ。actionsのymlを記述しているので開発者だと思い、文章を追うのだが意味をなさない。あれこれ考えたが、どうも直面してる警告からかけ離れている、違う、と頭の中で違和感を感じる。こおいうときはもう一方も念のためにみてみるべきだ。利用者側の文章に答えはあった。自分は利用者だったのだな。確かにactionsの機能を 利用 している。「actions/checkout@v2」を「actions/checkout@v3」に変更してデプロイすると警告が現れなくなった。