Google Project Zero の解説:5年前の Safari の脆弱性 CVE-2022-22620 が悪用された理由

Google Researchers Detail 5-Year-Old Apple Safari Vulnerability Exploited in the Wild

2022/06/20 TheHackerNews — Google Project Zero の最新レポートによると、今年の初めに野放しで悪用されていた Apple Safari のセキュリティ欠陥は、もともと2013年に修正され、2016年12月に改めて問題とされたものだ。この脆弱性 CVE-2022-22620 (CVSS : 8.8) は、WebKit コンポーネントの use-after-free に起因するものであり、特別に細工された Web コンテンツの一部により悪用され、任意のコード実行を許す可能性があるというものだ。


2022年2月の上旬に、Apple は 「積極的に悪用された可能性がある」と認め、このバグに対するパッチを、Safari/iOS/iPadOS/macOS 向けに出荷している。

Google Project Zero の Maddie Stone は、「この脆弱性に関する最初の報告が 2013年にだされたときに、亜種に対するパッチも完全に適用されていた。しかし、その3年後の、大規模なリファクタリング作業中に、この亜種が再び問題となった。したがって、2022年1月に野放し状態のゼロデイとして修正されるまでの5年間において、この脆弱性は存在し続けた」と述べている。

History API における2013年と2022年のバグは、どちらも本質的には同じものだが、脆弱性を誘発する経路は異なる。そして、数年後に行われたコード変更により、このゼロデイ欠陥がゾンビのように死からよみがえった。

Maddie Stone は、「今回のインシデントは Safari に限ったことではない。コードやパッチの監査に十分な時間をかけ、修正を重複して行う事例を避け、実施された変更のセキュリティ上の影響を理解することが重要だ。2016年10月と2016年12月のコミットは、どちらも非常に大規模なものだった。10月のコミットでは、40のファイルが変更され、900 の追加と 1225 の削除が行われている。12月のコミットは、95のファイルが変更され、1336 の追加と1325 の削除が行われている」と指摘している。

さらに彼は、「特にライフタイムという意味に関連するため、これらのコミットにおける各種の変更の、セキュリティに対する影響を詳細に理解することは、どの開発者やレビュアーにとっても無理なようだ」と述べている。

この脆弱性 CVE-2022-22620 ですが、お隣のキュレーション・チームに聞いてみたら、2022年2月に Apple Safari で、そして、その後は Ubuntu/Debian/Red Hat などのの脆弱性として、レポートされていたとのことです。一言でいうと、Apple Safari のリファクタリングで用いられた修正されたはずのコードに、昔の脆弱性が残っていた。そして、この脆弱性がゾンビのように蘇り、それが野放し状態で悪用されていた、ということなのでしょう。また、ソフトウェアの規模が拡大するにつれて、こうした問題を人間が解消することが、とても難しくなっているとも指摘しています。ほんと、難しい問題だと思います。これも、やはり、SBOM 頼みなのでしょうか?