웹사이트, 클라우드 애플리케이션, 네트워크의 취약점을 스캔하는 데 널리 사용되는 오픈소스 도구 누클레이에서 공격자가 로컬 시스템에서 악성 코드를 실행할 수 있는 심각한 보안 취약점이 발견됐다.
CVE-2024-43405로 분류된 해당 취약점은 CVSS 점수 7.4점을 기록했다. 이는 누클레이 3.0.0 이후의 모든 버전에 영향을 미치는 것으로 알려졌다.
취약점을 발견한 클라우드 보안 기업 위즈(Wiz) 연구진은 이를 통해 공격자가 악의적으로 제작된 템플릿을 사용해 호스트의 민감한 데이터에 접근할 수 있다고 분석했다. 위즈는 사용자를 위한 설명과 함께 취약점 우회 개념 증명(PoC)도 게재했다.
누클레이 개발사이자 관리자인 프로젝트디스커버리(ProjectDiscovery)는 이 취약점이 ‘서명자(signer)’ 패키지의 템플릿 서명 검증 과정에 존재한다고 설명했다. 프로젝트디스커버리는 “누클레이의 템플릿 서명 검증 시스템에서 발견된 이 취약점으로 인해 공격자가 서명 검사를 우회하고 사용자 정의 코드 템플릿을 통해 악성 코드를 실행할 수 있다”라고 설명했다.
해당 취약점은 누클레이 v3.3.2 업데이트를 통해 패치됐다.
누클레이의 템플릿 검증 위조
누클레이는 깃허브(GitHub)에서 현재까지 2만 1,000개 이상의 별표를 받았으며 210만 회 이상 다운로드됐다. 이 도구는 취약점 스캐닝 과정에서 특정 검사나 테스트를 정의하는 YAML 파일 형태의 ‘템플릿’을 사용한다. 스캐닝 과정에서 변조되거나 악의적인 템플릿으로 인한 오류를 방지하기 위해 템플릿의 신뢰성 확보가 매우 중요한 구조다.
신뢰성 확보를 위해 누클레이는 고(Go) 정규식(regex) 기반의 서명 검증 프로세스를 사용하고 있다. 프로젝트디스커버리에 따르면, 취약점은 서명 검증 프로세스와 YAML 구문 분석기에서 줄 바꿈 문자를 처리하는 방식에 차이가 있기 때문에 발생한다. 고의 검증 로직은 ‘r’을 같은 줄로 간주하지만, YAML 구문 분석기는 이를 줄 바꿈으로 처리해 공격자가 악성 코드를 삽입할 여지를 남긴다는 설명이다.
이 취약점은 누클레이가 여러 개의 “digest:” 서명 라인을 제대로 처리하지 못하는 문제와 결합되어 더 심각한 보안 위험을 초래할 수 있다. 공격자는 취약점을 악용해 템플릿의 정상적인 부분에 대한 서명은 그대로 유지한 채, 템플릿 내에 악성 코드를 몰래 삽입할 수 있다.
CLI 및 SDK 사용자 모두 영향
프로젝트디스커버리는 누클레이의 CLI 및 SDK 사용자 모두가 취약점의 영향을 받으며, 패치를 적용해야 한다고 설명했다. CLI 사용자에는 서드파티 및 미검증 저장소와 같은 신뢰할 수 없는 출처의 사용자 정의 코드 템플릿을 실행하는 사용자도 포함된다.
SDK의 경우, 누클레이를 플랫폼에 통합하면서 최종 사용자가 사용자 정의 코드 템플릿을 실행할 수 있도록 허용하는 개발자가 영향을 받는다.
프로젝트디스커버리는 지난해 9월 4일부터 제공된 수정 버전으로 업그레이드할 것을 안내했으며, 임시 조치로 사용자 정의 템플릿 사용을 자제할 것을 권장했다.
[email protected]
Read More from This Article: 오픈소스 취약점 스캐너 누클레이, 자체 코드서 보안 취약점 발견
Source: News