2007 年 6 月,Sun Microsystems 確認 Java 運行時環境(JRE)存在多個高危漏洞,攻擊者可通過精心構造的圖片文件觸發整數溢出或繞過安全沙箱讀取本地文件。Sun 已發布 Java SE 6 Update 2 修復補丁,強烈建議所有用戶立即升級。
漏洞詳情
| 漏洞類型 | 影響組件 | 受影響版本 | CVE/參考 |
| JPEG 圖片整數溢出 | ImageIO JPEG 解碼器 | JDK/JRE 1.5.0_11 之前、1.6.0_01 之前 | CVE-2007-XXXX(Chris Evans 2006 年 10 月報告) |
| BMP 圖片本地文件讀取 | ImageIO BMP 解碼器(Unix/Linux) | JDK/JRE 1.5.0_11 之前、1.6.0_01 之前 | CVE-2007-XXXX |
影響範圍
- 所有運行易受影響版本 JRE 的桌面應用、Applet、Java Web Start 應用。
- 服務端若解析用戶上傳圖片(如頭像、文檔轉換),同樣面臨風險。
- Windows 平台因 BMP 解碼器實現差異,暫不受第二個漏洞影響,但 JPEG 溢出風險依然存在。
官方修復方案
- 訪問 java.com 下載最新 Java SE 6 Update 2(或更高版本)。
- 企業環境請通過內部軟件分發系統批量推送更新,並驗證
java -version 輸出包含 1.6.0_02 或更高版本號。
- 若因業務兼容性無法立即升級,臨時緩解措施:
- 禁用瀏覽器 Java 插件(控制面板 → Java → 安全 → 取消勾選「在瀏覽器中啟用 Java 內容」)。
- 服務端圖片處理管道增加文件類型白名單、尺寸限制、異常捕獲降級邏輯。
- 部署 WAF 規則攔截異常 JPEG/BMP 文件結構。
時間線回顧
- 2006-10:Google 安全研究員 Chris Evans 向 Sun 私下報告漏洞。
- 2007-05-15:Evans 公開披露漏洞細節。
- 2007-06-07:澳洲 CERT 發布預警,指出除已知兩漏洞外,可能存在第三個未公開漏洞。
- 2007-06-08:Sun 發布 Java SE 6 Update 2 修復補丁,並聲稱暫未發現實際攻擊利用案例。
給開發者的啟示
- 保持運行時更新:JRE/JDK 屬於基礎設施核心組件,必須納入定期補丁管理流程(建議月度檢查)。
- 最小權限原則:服務端圖片處理應在隔離容器、非 root 用戶、只讀文件系統中運行。
- 輸入驗證深度防禦:不信任任何客戶端上傳文件,解析前先校驗 Magic Number、文件結構完整性、尺寸限制。
- 關注安全公告源:訂閱 Oracle Critical Patch Update (CPU)、CVE/NVD、相關安全郵件列表。
立即行動: 打開終端執行 java -version,若版本低於 1.6.0_02,請立即前往 java.com 下載安裝最新版本。服務器端請協同運維團隊制定升級計劃,驗證業務兼容性後全量發布。