加密貨幣交易所 Coinbase 日前披露一項潛在漏洞稱,部分用戶的帳號密碼以純文字的信息被儲存在內容記錄系統中,受影響人數初步統計達 3,420 名潛在用戶,所幸的是,這些信息並未被外界不正當訪問。
CoinDesk 釋出事後分析報告稱,「非常特殊和罕見的錯誤情況下,我們的註冊表格無法正常加載,這意味著在這些條件下嘗試註冊的新帳戶都將失敗,這也意味著用戶的姓名、電郵地址及其所提交的密碼(如在美國則包含居住州)將被發送到我們的內部記錄系統」。
官方表示,若用戶在二次嘗試註冊新帳號時使用相同的密碼,雖可註冊成功,但這也將導致這些密碼與公司記錄系統中的散列版本相匹配。
報告指出,由於 Coinbase 在註冊頁面上使用 React.js 服務端呈現,所以才會產生漏洞。換言之,當用戶嘗試註冊帳戶時,React 將幫助顯示資料填寫表單。 Coinbase 補充解釋,「任何試圖註冊的用戶都必須啟用並以正確的方式加載 JavaScript,在這種情況下,React 將會協助用戶處理表單驗證並提交給服務器。但是,在用戶禁用 JavaScript 或瀏覽器加載時收到 React.js 報錯的情況下,卻同樣會呈現預載的 HTML 頁面,讓用戶不以為意,繼續填寫個人資料並嘗試提交註冊表單。」
正常情況下,標準的 HTML 表單皆由 <form> 標籤開始,結尾則是使用 </form> 標籤,兩個標籤之間就是放置表單元素的地方,form 會將網友填完的資料,傳送至「action」所設定的資料傳送目的地;而「method」是資料傳遞的方式,有 get 與 post 兩種方式。
Coinbase 表示,由於沒有設置到「action」和「method」的屬性,因此在默認的情況下,會導致部分瀏覽器將資料傳遞方式設為「get」,意味著表單中的數據將被編碼成記錄系統的一部分。
為了解決這個問題,Coinbase 現已將默認表單方法切換為「post」,以確保系統不再記錄用戶數據,同時要求受影響的用戶重置密碼,並在登入時啟用雙重身份驗證。此外,Coinbase 表示,「我們還在實施其他機制,以利檢測和預防任何潛在疏漏」。
Coinbase 還提到,團隊已追蹤到可能存儲用戶數據的各個位置,並進行全面審查,目前尚未發現任何未經授權的侵入。
該交易所最後提醒道,「Coinbase 長期以來都在 HackerOne 上經營著一個活躍的漏洞賞金計畫,迄今已支付超過 25 萬美元。雖然這次的漏洞是由內部團隊所發現,但仍我們歡迎外界安全研究人員能在他們系統中發現漏洞時,及時向我們通報錯誤。」