PHP용 패키지 관리자인 컴포저(Composer)에서 공격자가 임의 명령을 실행하고 모든 PHP 패키지를 백도어해 공급망 공격을 유발할 수 있는 중요 취약점이 발견되어 업데이트가 제공되었다.
CVE-2021-29472로 추적된 이 보안 문제는 소나소스(SonarSource)의 연구원이 4월 22일에 발견해 보고했으며 이후 12시간이 지나지 않아 핫픽스가 배포되었다.
Composer는 수요일에 발표된 2.0.13 및 1.10.22 버전에 대한 릴리스 노트에서 “HgDriver/HgDownloader의 수정된 명령 주입 취약점과 다른 VCS 드라이버 및 다운로드 강화이며 우리가 아는 한 이 취약점은 악용되지 않았다.”라고 밝혔다.
Composer는 PHP의 종석성 관리도구로 프로젝트와 관련된 패키지를 쉽게 설치할 수 있다. 또한 사용자는 Composer로 설치할 수 있는 모든 PHP 패키지를 집계하는 저장소인 Packagist에서 사용 가능한 PHP 애플리케이션을 설치할 수 있다.
소나소스에 따르면, 이 취약점은 패키지 소스 다운로드 URL이 처리되는 방식에서 비롯되며 잠재적으로 공격자가 원격 명령 주입을 트리거 할 수 있는 시나리오로 이어질 수 있다. 증명을 위해 연구원들은 ‘별칭(alias)’ 옵션을 이용하여 공격자가 선택한 쉘 명령을 실행하는 악성 Mercurial 저장소 URL을 만들기 위해 인수 삽입 결함을 악용했다.
회사 측은 “매월 1억 개 이상의 패키지 메타 데이터 요청을 처리하는 이러한 중앙 구성 요소의 취약점은 이 액세스가 유지 관리자의 자격 증명을 훔치거나 패키지 다운로드를 백도어 종속성을 제공하는 타사 서버로 리다이렉션 하는데 사용될 수 있기 때문에 큰 영향을 미친다.”고 말했다.
또 버그 중 하나가 2011년 11월에 도입되어 10년 전 Composer 개발이 시작된 시점부터 취약한 코드가 숨어 있었음을 시사한다고 말했다. Composer의 첫 번째 알파 버전은 2013년 7월 3일에 출시되었다.
한편 Composer의 주요 개발자 중 한 명인 조르디 보기아노는 “composer.json 파일은 일반적으로 자체 제어하에 있고 소스 다운로드 URL은 Composer 플러그인과 같이 소스 코드를 다운로드하고 실행하기 위해 명시적으로 신뢰하는 타사 Composer 저장소에서만 제공할 수 있기 때문에 Composer 사용자에게 직접적으로 미치는 영향은 제한된다.”라고 말했다.
★정보보안 대표 미디어 데일리시큐!★