출처
본문 내용
인증되지 않은 공격자가 임의의 파일을 읽을 수 있도록 허용하는 중요한 Jenkins 취약점에 대한 다중 개념 증명(PoC) 공격이 공개되었으며, 일부 연구원들은 공격자가 공격의 결함을 적극적으로 악용한다고 보고했다. Jenkins는 소프트웨어 개발, 특히 CI(지속적 통합) 및 CD(지속적 배포)에 널리 사용되는 오픈 소스 자동화 서버이다. 애플리케이션 구축, 테스트, 배포와 같은 소프트웨어 개발 프로세스의 다양한 부분을 자동화하는 데 중요한 역할을 하며, 수천 개가 넘는 통합 플러그인을 지원하며 대기업을 포함한 모든 규모의 조직에서 사용된다.
SonarSource 연구원들은 공격이 취약한 서버의 데이터에 액세스 하고 특정 조건에서 임의의 CLI 명령을 실행할 수 있는 Jenkins의 두 가지 결함을 발견했다. 치명적으로 평가된 첫 번째 결함은 CVE-2024-23897로, '전체/읽기' 권한이 있는 인증되지 않은 공격자가 Jenkins 서버의 임의 파일에서 데이터를 읽을 수 있도록 허용한다.
이 권한이 없는 공격자는 사용 가능한 CLI 명령에 따라 숫자가 달라지는 파일의 처음 몇 줄을 계속 읽을 수 있다. 이 결함은 Jenkins의 args4j 명령 구문 분석기 의 기본 동작에서 비롯된다. 이 동작은 인수가 "@" 문자로 시작할 때 자동으로 파일 내용을 명령 인수로 확장하여 Jenkins 컨트롤러 파일 시스템에서 임의의 파일을 무단으로 읽을 수 있도록 허용한다. Sonar는 특정 결함을 악용하면 관리자 권한 상승 및 임의 원격 코드 실행으로 이어질 수 있다고 설명했다. 그러나 이 단계는 충족해야 하는 특정 조건에 따라 달라지며, 이는 각 공격 변형마다 다르다.
CVE-2024-23898로 추적되는 두 번째 결함은 공격자가 사용자를 속여 악의적인 링크를 클릭하도록 속여 임의의 CLI 명령을 실행할 수 있는 크로스 사이트 WebSocket 하이재킹 문제이다. 이 버그로 인해 발생하는 위험은 웹 브라우저의 기존 보호 정책을 통해 완화되어야 하지만 이러한 정책이 보편적으로 시행되지 않기 때문에 이러한 위험은 지속된다.
SonarSource는 2023년 11월 13일 Jenkins 보안팀에 결함을 보고했으며 다음 달에 수정 사항을 확인하는 데 도움을 주었다. 2024년 1월 24일 Jenkins는 버전 2.442 및 LTS 2.426.3의 두 가지 결함에 대한 수정 사항을 발표하고 다양한 공격 시나리오 및 악용 경로를 공유하는 권고를 게시했으며 보안을 적용할 수 없는 사용자를 위한 수정 설명 및 가능한 해결 방법을 게시했다.
https://twitter.com/cyb3rops/status/1750835886051275057
https://github.com/h4x0r-dz/CVE-2024-23897/tree/main