CVE-2024-53677(S2-067),是影響 Apache Struts 的一個重大漏洞,主要涉及文件上傳邏輯的缺陷。
CVSS 分數與風險等級
該漏洞的 CVSS 4.0(通用漏洞評分系統)分數為 9.5(滿分 10 分),風險等級被評定為Critical。
漏洞成因
該漏洞源於 Apache Struts 的文件上傳邏輯存在缺陷。當應用程式使用 FileUploadInterceptor
進行文件上傳時,攻擊者可以操縱上傳參數,利用路徑遍歷(Path Traversal)技術,將惡意檔案上傳至主機的任意位置。這可能導致遠程式碼執行等嚴重後果。
影響範圍
受影響的 Apache Struts 版本包括:
- 2.0.0 至 2.3.37(已停止維護)
- 2.5.0 至 2.5.33
- 6.0.0 至 6.3.0.2
需要注意的是,即使僅使用 FileUploadInterceptor
的應用程式,仍會受到該漏洞的影響。
可能影響
成功利用該漏洞的攻擊者可以:
- 路徑遍歷:將文件上傳至主機的任意目錄。
- 遠端任意程式執行:上傳並執行惡意程式(例如:Web shell),完全控制受影響的系統。
- 資訊洩露或篡改:訪問或修改敏感數據,破壞系統完整性和機密性。
解決方案
為防止該漏洞的利用,建議採取以下措施:
- 升級 Apache Struts:將框架升級至 6.4.0 或更高版本,該版本修復了此漏洞。
- 遷移文件上傳機制:在升級後,建議從
FileUploadInterceptor
遷移至新的檔案上傳機制,即使用ActionFileUploadInterceptor
來處理文件上傳。 - 檢查應用程式配置:如果您的應用程式未使用
FileUploadInterceptor
,則不受該漏洞影響,但仍建議檢查配置,確保安全。 - 實施嚴格的輸入驗證:確保所有上傳的檔案都符合預期的格式和大小限制,並對檔名進行適當的過濾,防止路徑遍歷(Path Traversal)等攻擊。
- 限制文件存儲路徑的權限:將上傳的檔案存儲在隔離的目錄中,並限制對這些檔案的執行權限,以減少潛在的風險。
總而言之,CVE-2024-53677 是一個高風險漏洞,最嚴重可導致遠端任意程式執行。強烈建議受影響的用戶盡快升級至最新版本的 Apache Struts,並採取適當的安全措施來防範潛在的攻擊。
若無法立即升級但有使用WAF,可先由以下方式緩解
直接阻擋由網際網路上傳的.jsp檔,這樣可防止駭客上傳.jsp的webshell檔案(針對http-post .jsp檔案進行阻擋)。
另外建議進行下面的檢查:
[1]檢查上傳文件是否帶有特殊符號,例如: % { # [ ] ‘ } / .. > <“
[2]阻擋以下關鍵字: top.uploadFileName、destinationPath
[3]檢查異常的 multipart/form-data