漏洞概況
- 影響版本:Oracle 10g Release 2 (10.2.0.2.0)
- 組件:
SYS.DBMS_EXPORT_EXTENSION 存儲過程
- 弱點類型:PL/SQL 注入
- 影響:低權限使用者可利用該漏洞以 DBA (SYS) 權限執行任意 SQL
- Bugtraq ID:17699
- 發現者:David Litchfield (Next Generation Security Software)
時間線與廠商回應
- 2006-04:Oracle 發布 Critical Patch Update (CPU) 聲稱修復。
- 2006-04-28:Litchfield 公開驗證 補丁無效,漏洞依然可被利用。
- 後續:Oracle 發布修訂補丁 (參考 US-CERT TA06-109A)。
臨時緩解措施 (Workaround)
在官方有效補丁發布前,立即撤銷 PUBLIC 執行權限:
REVOKE EXECUTE ON SYS.DBMS_EXPORT_EXTENSION FROM PUBLIC;
此舉不影響正常匯出/匯入功能 (Data Pump 使用 DBMS_DATAPUMP/DBMS_METADATA),但會阻斷攻擊向量。
驗證修復狀態
-- 檢查權限
SELECT grantee, privilege FROM dba_tab_privs WHERE table_name='DBMS_EXPORT_EXTENSION';
-- 應無 PUBLIC 執行權限
-- 嘗試觸發 (需低權限帳號)
-- 若回傳錯誤 ORA-01031: insufficient privileges 表示防護生效
參考連結
長期防護策略
- 最小權限原則:定期稽核
DBA_TAB_PRIVS、DBA_SYS_PRIVS,移除非必要的 PUBLIC 權限。
- 關鍵套件防護:對
DBMS_*, UTL_* 等系統套件實施「預設拒絕,按需授權」。
- 資料庫防火牆/稽核:部署 Oracle Audit Vault / Database Firewall 監控異常 PL/SQL 呼叫。
- 補丁管理流程:建立 CPU 適用前測試、驗證、回滾機制;關注「補丁無效」風險。