공격의 핵심은 PHP 코드 자체에 있지 않았습니다. PHP 라이브러리 자체는 설치 후크나 악성 네트워크 활동 없이 양호한 상태를 유지했습니다 . 대신 공격자들은 개발자의 소스 저장소에 583개의 악성 GitHub Actions 워크플로 파일(.github/workflows/*.yml)을 주입했습니다. 영향을 받은 각 패키지 버전에는 55~62개의 워크플로 파일이 포함되어 있었습니다 . GitHub Actions 워크플로는 테스트 실행이나 코드 배포와 같은 자동화된 작업을 정의하는 YAML 파일입니다. 공격자들은 이 합법적인 자동화 인프라를 다른 목적으로 전용했습니다.
탈취된 저장소의 포크나 복사본이 워크플로를 트리거하면(예: push 이벤트), 악성 .yml 파일은 GitHub 호스팅 Ubuntu 러너에게 다음 작업을 지시했습니다 :
43[.]228[.]157[.]68에 있는 명령 및 제어(C2) 서버에서 스캐닝 및 악용 페이로드를 다운로드합니다.이를 통해 트리거된 모든 워크플로가 스캐닝 및 악용 노드로 전환되어, GitHub의 무료 인프라를 공격을 위한 분산 플랫폼으로 사용했습니다 .
이 캠페인의 표적은 CVE-2026-41940로, cPanel 및 WebHost Manager(WHM)의 치명적인 취약점입니다 .
cpsrvd 기본 인증 핸들러의 CRLF(캐리지 리턴 라인 피드) 주입 취약점 . 인증되지 않은 공격자는 원시 줄 바꿈 문자를 포함하는 조작된 Authorization 헤더를 보낼 수 있습니다. 이를 통해 user=root 및 hasroot=1과 같은 임의 속성을 세션 파일에 주입하여 유효한 비밀번호 없이 WHM 인터페이스에 대한 루트 수준의 관리 액세스 권한을 효과적으로 부여받을 수 있습니다 .영향을 받은 cPanel/WHM 서버에서 악용에 성공하면, 사후 악용 페이로드는 광범위한 자격 증명과 비밀 정보를 수집하도록 설계되었습니다. 주요 표적은 다음과 같습니다 :
이처럼 다양한 자격 증명의 도난은 손상된 서버에 존재하는 모든 가치 있는 액세스 토큰을 기회적으로 탈취하려는 데이터 무차별적인 시도를 나타냅니다 .
10개의 Packagist 패키지에 있는 583개의 워크플로 파일은 초기 발견에 불과했습니다. 공유 DNSHook 콜백 도메인 및 코드 재사용 패턴과 같은 공격자 지표를 기반으로 조사한 결과, 훨씬 더 큰 작업이 드러났습니다 :
이 엄청난 차이는 공격자들이 단일 dinushchathurya 계정을 넘어 훨씬 더 많은 개발자 계정과 저장소를 손상시켰을 가능성이 매우 높음을 강력히 시사합니다 . 이 캠페인은 단일 지점의 실패가 아니라 조정된 다중 계정 작업이었습니다. The Hacker News는 2026년 5월에 관련 악성 요소를 가진 8개의 패키지를 손상시킨 별도의 Packagist 서플라이 체인 공격을 보고하여 , 생태계의 취약성을 더욱 강조했습니다.
이 캠페인은 공격자의 인프라가 완전히 무력화되지 않았기 때문에 지속적인 위협이 됩니다. 캠페인은 다음을 통해 계속될 수 있습니다 :
43[.]228[.]157[.]68)는 여전히 작동 중이며 적극적으로 데이터를 수신하고 있을 수 있습니다 .원래 개발자의 Packagist 계정이 정지되었지만, 일치하는 워크플로 파일의 방대한 규모(최대 ~16,000개)는 완전히 근절하기 어려운 광범위한 작업임을 의미합니다 .
공개된 분석에 따르면, 조직과 개발자는 즉시 다음 조치를 취해야 합니다 :
push 또는 workflow_dispatch 트리거에서 실행됩니다.43[.]228[.]157[.]68) 및 알려진 DNSHook 콜백 도메인에 대한 네트워크 연결이 있는지 로그를 검색하십시오 ..github/workflows/ 파일이 있는지 개발 버전(dev-master, dev-main)을 구체적으로 검사하십시오. PHP 코드 자체는 깨끗할 수 있지만 공격은 전적으로 CI/CD 구성에 존재하기 때문입니다 .