Django Web 框架中可能導致 SQL 替換的漏洞

Django Web 框架 4.0.6 和 3.2.14 的修正版本已發布,修正了一個可能允許您取代 SQL 程式碼的漏洞 (CVE-2022-34265)。這個問題會影響在傳遞給 Trunc(kind) 和 Extract(lookup_name) 函數的 kind 和lookup_name 參數中使用未經驗證的外部資料的應用程式。僅允許lookup_name和kind值中經過驗證的資料的程式不受該漏洞的影響。

透過禁止在 Extract 和 Trunc 函數的參數中使用字母、數字、“-”、“_”、“(”和“)”以外的字符,解決了這個問題。先前,傳輸的值中沒有刪除單引號,這使得可以透過傳遞諸如「day' FROM start_datetime)) OR 1=1;—」和「year', start_datetime)之類的值來執行SQL建構) 或1= 1;—“.在下一個版本4.1中,計劃進一步加強對日期提取和截斷方法的保護,但API的更改將導致與第三方資料庫後端的兼容性崩潰。

來源: opennet.ru

添加評論