Android 平台中發現了一個漏洞 (CVE-2022-20465),該漏洞允許透過更換 SIM 卡並輸入 PUK 碼來停用螢幕鎖定。禁用鎖定的功能已在 Google Pixel 裝置上演示,但由於修復影響核心 Android 程式碼庫,因此該問題很可能也會影響其他製造商的韌體。該問題已在 Android 70 月的安全性修補程式說明中修復。向他提出該問題的研究人員獲得了谷歌 XNUMX 萬美元的獎勵。
這個問題是由於輸入 PUK 碼(個人解鎖密鑰)後解鎖處理不正確所致,該 PUK 碼用於在多次輸入錯誤 PIN 碼後恢復被鎖定的 SIM 卡的操作。若要停用螢幕鎖,只需將 SIM 卡插入已啟用基於 PIN 的保護的手機即可。更換受 PIN 碼保護的 SIM 卡後,螢幕上會先顯示 PIN 碼要求。如果您三次輸入錯誤的 PIN 碼,SIM 卡將被阻止,並且您可以選擇輸入 PUK 碼來解鎖。事實證明,輸入正確的 PUK 碼不僅可以解鎖 SIM 卡,還可以繞過螢幕保護程式進入主介面,而無需使用主密碼或圖形密鑰確認存取。

該漏洞是由 KeyguardSimPukViewController 處理程序中的 PUK 碼驗證邏輯錯誤引起的,該處理程序負責顯示額外的身份驗證螢幕。 Android 使用幾種類型的驗證畫面(PIN、PUK、密碼、圖案、生物辨識驗證),當需要執行多項檢查時(例如需要 PIN 和圖案時),會依序呼叫這些畫面。
如果正確輸入了 PIN 碼,則會觸發第二階段驗證,需要輸入主解鎖碼,但如果輸入了 PUK 碼,則會跳過此階段並直接提供存取權限,而無需主密碼或圖案。解鎖的下一階段被丟棄,因為在呼叫 KeyguardSecurityContainerController#dismiss() 時,沒有對預期和通過的驗證方法進行比較,即處理程序認為驗證方法沒有變化,並且 PUK 碼驗證的完成表示權限確認成功。
該漏洞是偶然發現的——用戶的手機沒電了,在充電開機後,他在輸入 PIN 碼時犯了幾次錯誤,之後他移除了 PUK 碼鎖,卻驚訝地發現系統沒有要求輸入用於解密數據的主密碼,之後系統凍結並顯示“Pixel 正在啟動...”的消息。事實證明,該用戶非常細心,他決定弄清楚到底發生了什麼,並開始嘗試以不同的方式輸入 PIN 碼和 PUK 碼,直到他在更換 SIM 卡後意外忘記重新啟動設備,設備不僅沒有凍結,而且還能進入環境。
特別令人感興趣的是谷歌對該漏洞報告的回應。有關該問題的資訊於 90 月發送,但研究人員直到 XNUMX 月才得到明確回應。他認為,出現這種行為的原因是他並不是第一個報告此錯誤的人。 XNUMX 月份,人們開始懷疑出現了問題,因為在安裝了在規定的保密期過後 XNUMX 天發布的韌體更新後,問題仍然沒有解決。
由於所有試圖查明有關該問題所發送訊息的狀態的嘗試都只會導致自動和模板化的回复,因此研究人員嘗試親自聯繫谷歌員工以澄清情況並準備修復,甚至在谷歌倫敦辦事處展示了該漏洞。只有在此之後,消除漏洞的工作才開始向前推進。在調查過程中,發現之前已經有人報告過這個問題,但谷歌決定破例對再次報告該問題的人給予獎勵,因為正是由於報告者的堅持,這個問題才引起了人們的注意。
來源: opennet.ru
