2024년 7월 1일 발표된 CVE-2024-36991(CVSS v3.1 : 7.5) 취약점은 Splunk Enterprise의 특정 버전에서 발견된 경로 탐색(Path Traversal) 취약점이다. 해당 취약점은 Splunk Enterprise의 /modules/messaging/ 엔드포인트에서 발생하며, Python의 os.path.join 함수가 특정 조건에서 경로 토큰을 잘못 처리하는 문제에서 기인한다. 원격 공격자는 조작된 HTTP 요청을 통해 서버의 상위 디렉토리로 이동이 가능하여 인증 없이도 민감한 파일 정보를 읽을 수 있다.
해당 취약점은 Windows에서 구동되는 Splunk Enterprise에만 영향을 미친다. 영향을 받는 버전과 패치 버전은 다음과 같다.
영향을 받는 버전 |
패치 버전 |
Splunk Enterprise 9.2.0 ~ 9.2.1 |
Splunk Enterprise 9.2.2 |
Splunk Enterprise 9.1.0 ~ 9.1.4 |
Splunk Enterprise 9.1.5 |
Splunk Enterprise 9.0.0 ~ 9.0.9 |
Splunk Enterprise 9.0.10 |
CVE-2024-36991 취약점은 PoC가 공개되어 있으므로 취약한 환경(Splunk Enterprise 9.2.1)을 구성하여 테스트를 진행해보았다. 테스트에 사용한 조작된 HTTP 요청 URL은 다음과 같다. Splunk Enterprise의 내부 사용자 인증 정보를 저장하는 파일인 passwd 파일을 읽어 들이는 공격 예시이다.
http://192.168.108[.]135:8001/en-US/modules/messaging/C:../C:../C:../C:../C:../etc/passwd |
Exploit이 성공하면, Splunk Enterprise의 passwd 파일의 내용이 출력되는 것을 확인할 수 있다. [그림 1]은 Splunk Enterprise의 ‘mir’ 사용자 계정의 인증 정보가 출력된 것을 확인한 것이다.
[그림 1] Splunk Enterprise의 passwd 파일을 읽어들이는 Exploit 예시
[그림 2]는 Splunk Enterprise가 설치된 피해 시스템에서 passwd 파일의 내용을 확인한 것이다. 앞서 Exploit을 통해 읽어들인 내용과 동일한 것을 알 수 있다.
[그림 2] 피해 시스템에서 확인한 Splunk passwd 파일
(1) 취약한 버전을 사용하는 경우, 패치 버전으로 업데이트할 것을 권고한다.
(2) 패치가 불가능한 경우, Splunk Web을 비활성화하여 취약점을 완화할 수 있다. 단, 이 경우 웹을 통한 Splunk 접근이 불가능해지므로 가용성을 고려하도록 하여야 한다.
※ Splunk Web을 비활성화하는 방법은 아래 사이트 참조
https://docs.splunk[.]com/Documentation/Splunk/latest/Security/DisableunnecessarySplunkcomponents
https://docs.splunk[.]com/Documentation/Splunk/latest/Admin/Webconf
[1] https://advisory.splunk[.]com/advisories/SVD-2024-0711
[2] https://cve.mitre[.]org/cgi-bin/cvename.cgi?name=CVE-2024-36991
[3] https://www.thehackerwire[.]com/cve-2024-36991-critical-windows-splunk-vulnerability-allows-unauthenticated-access-to-sensitive-files/
보안관제센터 MIR Team