影響版本:Oracle Database 9.2.0.0 ~ 10.2.0.3
Bugtraq ID:17426
核心問題:僅擁有基表 SELECT 權限的用戶,可透過建立特製視圖,對該基表執行 INSERT/UPDATE/DELETE 操作,繞過權限檢查。
Oracle 在處理視圖上的 DML 操作時,未正確驗證基表的主鍵約束與用戶權限。攻擊者建立包含特定條件 (需基表有主鍵) 的視圖,再對視圖發起 DML,資料庫錯誤地允許操作通過。因多數資料字典表無主鍵,字典受影響程度較低。
-- 假設用戶 dbsnmp 僅有 SELECT ANY DICTIONARY
SQL> DELETE FROM sys.registry$; -- 正常失敗 ORA-01031
SQL> CREATE OR REPLACE VIEW e AS SELECT [...特製查詢...]; -- 成功建立視圖
SQL> DELETE FROM e; -- 驚人地刪除了 17 筆字典資料!
CREATE VIEW、CREATE DATABASE LINK 等權限。發布時 Oracle 尚未提供官方補丁,請持續關注 Oracle Security Alerts 並儘速套用 CPU/PSU。