Packagist PHP 저장소를 손상시키는 Composer에서 취약점이 확인되었습니다.

몇일 전에 심각한 취약점이 발견되었다는 뉴스가 나왔습니다. en 종속성 관리자 작곡가 (CVE-2021-29472) 소스 코드 다운로드 방향을 결정하는 특수하게 형성된 URL 값으로 패키지를 처리 ​​할 때 시스템에서 임의의 명령을 실행할 수 있도록합니다.

문제는 GitDriver, SvnDriver 및 HgDriver 구성 요소에서 나타납니다. Git, Subversion 및 Mercurial 소스 제어 시스템과 함께 사용됩니다. 이 취약점은 Composer 버전 1.10.22 및 2.0.13에서 수정되었습니다.

특히 306.000 PHP 개발자 패키지를 포함하고 월 1.400 억 회 이상의 다운로드를 제공하는 Composer의 기본 Packagist 패키지 저장소가 특히 영향을받습니다.

PHP 에코 시스템에서 Composer는 소프트웨어 종속성을 관리하고 설치하기위한 주요 도구입니다. 전 세계의 개발 팀은이를 사용하여 업그레이드 프로세스를 용이하게하고 모든 환경 및 버전에서 애플리케이션이 쉽게 실행되도록합니다.

이 실험은 문제에 대한 정보가있는 경우 공격자가 Packagist 인프라를 제어하고 유지 관리자의 자격 증명을 가로 채거나 패키지 다운로드를 타사 서버로 리디렉션하여 변경된 패키지 변형을 제공 할 수 있음을 보여줍니다. 악성 사용자가 종속성 설치 중에 백도어를 교체합니다.

최종 사용자의 위험은 제한적입니다. composer.json의 내용은 일반적으로 사용자가 정의하고 일반적으로 신뢰할 수있는 타사 저장소에 액세스 할 때 소스에 대한 링크가 전달되기 때문입니다. 주요 타격은 Packagist.org 저장소와 Private Packagist 서비스에있었습니다. 사용자로부터받은 데이터 전송으로 Composer를 호출합니다. 공격자는 특별히 제작 된 패키지를 드롭하여 Packagist 서버에서 코드를 실행할 수 있습니다.

Packagist 팀은 통지 후 12 시간 이내에 취약점을 해결했습니다. 취약성의. 연구원들은 22 월 27 일에 Packagist 개발자에게 비공개로 알렸고 같은 날 문제가 해결되었습니다. 취약점을 수정 한 공개 Composer 업데이트가 28 월 XNUMX 일에 발표되었으며 세부 사항은 XNUMX 월 XNUMX 일에 공개되었습니다. Packagist 서버의 로그 감사는 취약점과 관련된 의심스러운 활동을 드러내지 않았습니다.

인수 주입 오류는 코드 검토 중에 간과되고 블랙 박스 상호 작용에서 완전히 간과되는 매우 흥미로운 오류 클래스입니다.

URL 유효성 검사 코드의 오류로 인해 문제가 발생합니다. 루트 composer.json 파일 및 소스 다운로드 링크에 있습니다. 이 버그는 2011 년 XNUMX 월부터 코드에 존재했습니다. Packagist는 명령 줄 인수로 "fromShellCommandline"을 호출하여 실행되는 특정 소스 제어 시스템에 연결되지 않고 코드 다운로드를 관리하기 위해 특수 계층을 사용합니다.

문제의 핵심은 ProcessExecutor 메서드가 URL에 추가 호출 매개 변수를 지정할 수 있다는 것입니다. 이러한 이스케이프는 GitDriver.php, SvnDriver.php 및 HgDriver.php 드라이버에서 누락되었습니다. GitDriver.php 공격은 "git ls-remote"명령이 경로 뒤에 추가 인수 지정을 지원하지 않았기 때문에 방해를 받았습니다.

"-config"매개 변수를 "hq"유틸리티에 전달하여 HgDriver.php에 대한 공격이 가능했습니다. "alias.identify"구성을 조작하여 명령 실행을 구성 할 수 있습니다.

연구원들은 유사한 URL을 가진 테스트 패키지를 Packagist에 제출하여 게시 된 후 해당 서버가 현재 디렉토리의 파일 목록이 포함 된 AWS의 Packagist 서버 중 하나로부터 HTTP 요청을 받았음을 확인했습니다.

유지 관리자는 패 키스트의 공개 인스턴스에서이 취약점을 이전에 악용 한 징후를 식별하지 않았습니다.

마지막으로 그것에 대해 더 알고 싶다면 세부 사항을 참조하십시오 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.