Google Pixelスマートフォンのスクリーンショット編集機能「Markup」に、編集前の画像を漏洩する脆弱性があることが分かりました。
たとえばPixel でメールやメッセージなどのスクリーンショットを撮影して、見せたくない分を切り取ったり、塗りつぶして隠したつもりでも、ネットにアップロードした画像ファイルからクロップアウトしたはずの部分や、塗りつぶしたはずの部分を読み取られる可能性があります。
脆弱性を公表したエンジニアの Simon Aarons氏によると、原因は Pixel の Markup が編集後の画像を保存する際、APIの挙動的にファイルを単純に上書きするのみで、ファイル長を切り詰めないこと。
編集後の画像データが元画像よりも小さい場合、後ろに元画像データの部分が残ったままのファイルとして保存してしまいます。
上書きされた部分は消えますが、編集やクロップの内容によっては、切り取った部分より外側がそのまま復元できたり、塗りつぶした顔や個人情報などが読み取られることがあります。
この脆弱性は3月のセキュリティアップデートで「重大性:高」として修正済みですが、問題はそれ以前に保存されたりネットにアップロードした画像は変えられないこと。
SNSや画像投稿機能のあるサービスの多くでは、アップロード時点でサイズを削減したり不要なメタデータを削除して再圧縮するものも多く、そうした場合は編集後に見えていた部分しか含まれないはずです。
一方でサービスによっては、画像を再圧縮やサイズ変更せず元ファイルのまま保存するものもあります。そうしたSNSやサービス等に投稿した画像は、問題がないように見えても、実はスクショした時点で写してしまったものをそのまま含んでいる可能性があります。報告したセキュリティ研究者によれば、こうしたサービスには Discordなどが含まれます。
Androidの IssueTracker によれば、この問題はAndroid 10以降の ParcelFileDescriptor.parseMode で"w"モードを使った場合の挙動。つまり3月の最新セキュリティアップデートで修正されるまで、少なくとも過去数年間は知らずに隠したはずの画像をアップロードしていた可能性があります。
公共のウェブに投稿した画像の場合、いまから削除が難しかったり、削除してもさまざまなサービスにクロールされアーカイブされているかもしれませんが、Pixelのスクリーンショットフォルダを見直すなり、自分の投稿履歴を思い出せるかぎり確認すれば影響を軽減できる可能性はあります。