취약점 개요:
args4j라이브러리를 사용하며, 이때 명령 인수에서 “@” 문자를 포함하는 파일 경로 뒤에 오는 파일의 내용을 인자로 대체하는 기능이 기본적으로 활성화되어 있다.원격 코드 실행 (RCE) 공격 방법:
임의 파일 읽기 취약점의 영향:
수정 및 해결 방법:
- Jenkins 2.442, LTS 2.426.3 및 LTS 2.440.1 버전에서 취약점을 해결하기 위한 수정이 이루어졌다. 이 버전들은 args4j라이브러리의 취약한 기능을 비활성화하여 CLI 명령 구문에서 파일 경로 뒤의 문자를 파일 내용으로 대체하는 기능을 차단했다.
- Jenkins CLI 액세스를 완전히 비활성화하거나 최신 버전으로 업데이트하는 것이 최선의 해결책이며 해당 해결책을 적용하기 위해서는 시스템을 재시작할 필요는 없다.
Jenkins의 임의 파일 읽기 취약점은 공격자가 시스템에 접근하여 파일을 읽고, 여러 방법으로 원격 코드 실행(RCE)을 수행할 수 있는 심각한 보안 문제이다. 이를 방지하기 위해서는 Jenkins를 최신 버전으로 업그레이드하거나 CLI를 비활성화하는 것이 필요합니다. 해당 취약점은 기밀성, 무결성, 가용성에 모두 영향을 미치기에 가능한 빠르게 조치를 취하는 것이 중요하다.
취약점 설명:
공격 시나리오:
수정 및 해결 방법:
2.442, LTS 2.426.3 및 LTS 2.440.1 버전에서는 CLI WebSocket 엔드포인트에 대한 출처 검증이 추가되어 이 취약점이 해결되었다.hudson.cli.CLIAction.ALLOW_WEBSOCKET을 true로 설정하여 변경 사항을 비활성화할 수 있다.대체 해결책:
- CLI 비활성화: CLI에 대한 접근을 비활성화하면 이 취약점이 완전히 방지되며, 이는 업데이트가 불가능한 관리자를 위한 권장 해결책.
- 역방향 프록시 설정: 역방향 프록시를 사용하는 경우, 프록시를 구성하여 WebSocket을 통한 CLI 접근을 차단할 수 있다.
2.442나 2.426.3 등의 최신 버전으로 업데이트하거나, CLI WebSocket 기능을 비활성화하여 공격을 방지하는 것이 필요하다.