新聞

Google開發者網站共用平臺DevSite被發現存在遠端程式碼執行(RCE)漏洞,問題出在Google將OAuth用戶端密鑰存放在瀏覽器Cookie內,又使用同一把密鑰作為Cookie簽章金鑰。資安研究人員Simon Koeck揭露,攻擊者無須登入Google帳號,就能利用這項漏洞在伺服器上執行任意程式碼。

Koeck在研究DevSite的OAuth登入流程時,發現網站發出的連線階段Cookie約有1,200位元組,明顯大於存放CSRF權杖及登入後返回網址所需的容量。他進一步檢查發現,Cookie內含未加密的OAuth用戶端密鑰,而且可以用這把密鑰偽造通過網站驗證的Cookie。由於DevSite在處理OAuth登入回呼時,會使用Python的pickle模組還原Cookie內的資料,攻擊者便可藉此觸發反序列化漏洞。為了避免影響正式系統,Koeck沒有執行系統命令,而是讓伺服器延遲數秒回應,並透過回應時間的變化,證實伺服器確實執行了他指定的函式。

這項問題也影響其他使用DevSite的Google開發者網站。Koeck發現,從developers.google.com取得的簽章金鑰,同樣能用來偽造firebase.google.com、developer.android.com及其他相關網站接受的Cookie,顯示多個網站共用簽章金鑰所帶來的安全風險。Koeck於8月6日向Google通報漏洞,Google於8月27日核定9萬美元漏洞獎金,其中包含因研究報告品質優異而加發的20%獎金,並於10月7日完成漏洞修補。