카테고리 없음
CVE-2024-23897(취약점 요약)
from-alien
2025. 4. 27. 17:44

- 개요
2024년 1월, Sonar의 취약점 연구팀은 CVE-2024-23897 해당 취약점에서 젠킨스에서 제공하는 내장 커맨드라인 인터페이스에서 CLI 명령어 인자와 옵션을 파싱할 때 공격자가 서버의 임의 파일을 몇 줄을 읽을 수 있고, 나아가 원격 코드 실행에도 사용할 수 있는 새로운 취약점을 발견 했다.
해당 취약점에서 CLI 명령어 인자와 옵션을 파싱할 때 Args4j 라이브러리를 사용하는 것으로 알려졌다.
이와 더불어서 CVE-2024-23898과 함께 더불어서 발견이 되었다.
해당 취약점 CVE-2024-23897에서는 인증된 사용자는 전체 파일까지 읽는 것이 가능하다.
- 해당 취약점에서 CLI 명령어 인자와 옵션을 파싱할 때 Args4j 라이브러리를 사용하는 것으로 알려졌다.
이와 더불어서 CVE-2024-23898과 함께 더불어서 발견이 되었다.
해당 취약점 CVE-2024-23897에서는 인증된 사용자는 전체 파일까지 읽는 것이 가능하다. - 2024년 1월 30일 Censys는 인터넷 상에 83,509개의 Jenkins 서버가 있으며, 이 중에서 79,952개가 CVE-2024-23898 취약점에 취약한 버전을 사용하고 있다고 보고 있다. Nov 06 24년도 기준
- 해당 취약점은 시스템의 개인 키를 획득하고 이를 이용해 열린 SSH포트에 연결하여 원격 코드 실행을 할 수 있다

- 취약점 세부사항
expandAtFiles
- @파일경로를 넣으면 파일의 내용을 자동으로 불러와 인자처럼 사용하게 된다.
- Args4j 라이브러리는 "expandAtFiles()"메서드를 실행하여 "@"기호
뒤의 문자열을 파일 경로로 처리 이로 인해 Jenkins는 인자에 있는 "@" 기호와 파일 경로를 해당 파일의 실제 내용으로 대체하게 된다(그래서 이름이 "expandAtFiles"이다). - expandAtFiles() 메서드는 기본적으로 활성화되어 있으며, Jenkins 2.441 및 LTS 2.426.2에서는 비활성화할 수 없다.
- 공격자가 임의 개수의 인자를 받을 수 있는 명령어를 찾으면, "@" 기호와 파일 이름이 포함된 문자열을 전달하여 파일 내용을 유출할 수 있다.
영향을 받는 버전 Jenkins2.441 이하, LTS 2.426.2 - 클라이언트가 Jenkins 서버 CLI를 통해 명령어를 요청하면, 서버의 "/cli" 디렉토리로 요청이 전송 된다. Jenkins CLI는 이러한 명령어 인자들을 파싱하기 위해서 JAVA 라이브러리인 Args4j를 사용