注目★★★★★Hacker News
CORSを誤解したまま実装すると何が起きるか—Zoomの脆弱性を例に
30秒で把握
- 1ZoomがCORSを誤解し画像ハックで迂回、任意サイトからローカル操作が可能な脆弱性が発生
- 2正しくはAccess-Control-Allow-Originヘッダ1行で制限でき、ハックは不要だった
- 3自プロジェクトのlocalhost向けAPIのCORSヘッダ設定を即点検すべき
要約
多くの開発者がCORSの仕組みを正しく理解しておらず、誤った回避策が深刻な脆弱性を生む、と著者は論じた。Zoomは`localhost:19421`でWebサーバを起動し、AJAXではなく画像の寸法でステータスを返すハックでCORSを迂回した結果、zoom.us以外の任意のサイトがローカルクライアントを操作できる状態になった。正しい実装は`Access-Control-Allow-Origin:、画像ハックは不要だった。StackOverflowには危険なデフォルト設定を推奨するCORS解説が多く、誤解が業界全体に広がっていると警告した。
あなたへの影響
localhostのWebサーバにCORSヘッダを正しく設定せず「どうせlocalはブラウザが無視する」と思い込んでいると、同じ構造の脆弱性を作り込む可能性がある。
推奨:自社のlocalhostサーバやAPIのCORSヘッダ設定を見直し、`Access-Control-Allow-Origin`をワイルドカードや未設定のままにしていないか確認しておくとよい。