近日,安全專家 Andreas Kellas詳細介紹了2000年10月引入的 SQLite 數據庫庫中的一個高嚴重性漏洞,該漏洞被跟蹤為 CVE-2022-35737(CVSS 評分:7.5)。這個有 22 年歷史的漏洞是一個整數溢出問題,影響 SQLite 版本1.0.12到 3.39.1,並已在2022年7月21日發布的版本 3.39.2中得到解決。
在沒有堆棧金絲雀的情況下編譯庫時確認任意代碼執行,但在存在堆棧金絲雀時未確認,並且在所有情況下都確認拒絕服務。

SQLite採用C 語言編程,是使用最廣泛的 數據庫引擎,默認包含在 Android、iOS、Windows 和 macOS 以及流行的 Web 瀏覽器(如 Google Chrome、Mozilla Firefox 和 Apple Safari)中。
Trail of Bits 發現的漏洞涉及整數溢出錯誤,當超大字符串輸入作為參數傳遞給printf 函數的 SQLite 實現時,會發生整數溢出錯誤,而 printf 函數又使用另一個函數來處理字符串格式(「 sqlite3_str_vappendf 」)。
「CVE-2022-35737 可在 64 位系統上利用,可利用性取決於程序的編譯方式;當庫在沒有堆棧金絲雀的情況下編譯時,任意代碼執行得到確認,但在堆棧金絲雀存在時未確認,並且在所有情況下都確認了拒絕服務。」 凱拉斯寫道。
專家解釋說,為了利用CVE-2022-35737漏洞,攻擊者必須將大字符串輸入傳遞給printf函數的 SQLite 實現,並且格式字符串包含 %Q、%q 或 %w 格式替換類型。該漏洞與printf調用的名為「 sqlite3_str_vappendf 」的函數處理字符串格式的方式有關。
當sqlite3_str_vappendf函數接收到大字符串並且格式替換類型為 %q、%Q 或 %w 時,將觸發有符號整數溢出。
啟用 unicode 字符掃描的特殊字符,那麼在最壞的情況下有可能實現任意代碼執行,或者導致 DoS 條件。
「當系統主要是 32 位架構時,在編寫它時(在 SQLite 源代碼中可以追溯到 2000 年),這個錯誤可能看起來不像是一個錯誤,」Kellas 總結道。
儘快更新!蘋果修復了用於攻擊 iPhone、iPad 的新零日漏洞
2022.10.26

伊朗原子能組織遭黑客攻擊,大量敏感數據泄露
2022.10.25

最新發現:針對沙特政府服務門戶網站的釣魚活動
2022.10.24


註:本文由E安全編譯報道,轉載請聯繫授權並註明來源。