CVE-2021-21234 Spring Boot 目錄遍歷
VSole2021-10-21 06:12:35
spring-boot-actuator-logview 在一個庫中添加了一個簡單的日志文件查看器作為 spring boot 執行器端點。它是 maven 包“eu.hinsch:spring-boot-actuator-logview”。在 0.2.13 版本之前的 spring-boot-actuator-logview 中存在目錄遍歷漏洞。該庫的本質是通過 admin(spring boot 執行器)HTTP 端點公開日志文件目錄。要查看的文件名和基本文件夾(相對于日志文件夾根)都可以通過請求參數指定。雖然檢查了文件名參數以防止目錄遍歷攻擊(因此`filename=../somefile` 將不起作用),但沒有充分檢查基本文件夾參數,因此`filename=somefile&base=../` 可以訪問日志記錄基目錄之外的文件)。該漏洞已在 0.2.13 版中修補。0.2.12 的任何用戶都應該能夠毫無問題地進行更新,因為該版本中沒有其他更改。除了更新或刪除依賴項之外,沒有解決此漏洞的方法。但是,刪除運行應用程序的用戶對運行應用程序不需要的任何目錄的讀取訪問權限可以限制影響。此外,可以通過在反向代理后面部署應用程序來限制對 logview 端點的訪問。
漏洞代碼出發位置:
eu.hinsch.spring.boot.actuator.logview.LogViewEndpoint#view:

view函數對filename參數進行合法性校驗,但是沒有對base參數進行合法性校驗。
filename的校驗函數:

GET path: - "{{BaseURL}}/manage/log/view?filename=/windows/win.ini&base=../../../../../../../../../../" # Windows - "{{BaseURL}}/log/view?filename=/windows/win.ini&base=../../../../../../../../../../" # windows - "{{BaseURL}}/manage/log/view?filename=/etc/passwd&base=../../../../../../../../../../" # linux - "{{BaseURL}}/log/view?filename=/etc/passwd&base=../../../../../../../../../../" # linux
修復方案:
升級到0.2.13
VSole
網絡安全專家