TL;DR
- SubQuery의
@subql/common@5.8.3에postinstall자격 증명 탈취 악성 코드가 포함돼 있으며, 설치하거나 패키지를 불러온 시스템과 CI 러너를 침해된 것으로 간주해야 함. - 악성 릴리스는 2026년 10월 5일 11:56 UTC에 npm 신뢰 게시자(GitHub Actions OIDC)를 통해 배포됐으며,
5.8.2에는 없는 페이로드가 포함됨. - 페이로드는 환경 변수와 GitHub·SSH·클라우드·쿠버네티스·Vault·암호화폐 지갑·AI 에이전트 자격 증명을 수집해
https://ci-artifacts.dev/router로 전송함. - 탈취한 GitHub 토큰으로 비밀 정보를 아티팩트에 덤프하는 워크플로를 포함한 브랜치를 푸시하고, 같은 호스트에 연결하는 원격 셸·명령 임플란트도 설치함.
5.8.3폐기와latest태그의5.8.2복구, 게시 파이프라인 조사, 저장소 및 조직의 자격 증명 교체와 침해 점검이 권고됨.
요약
- 2026년 10월 5일 게시된
@subql/common@5.8.3에 자격 증명을 탈취하고 원격 명령 임플란트를 설치하는 악성 코드가 포함돼 있어, 패키지를 설치한 사용자는 시스템을 침해된 것으로 간주하고 자격 증명을 교체해야 함. - 이 버전은 현재
latest태그이며,5.8.2에는 해당 페이로드가 없음. - 배포는 프로젝트의 npm 신뢰 게시자(GitHub Actions OIDC)를 통해 Git 커밋
506863d6fb82bd2714970cf8c6f1bf364374b009에서 이뤄져, 릴리스 파이프라인이나 해당 릴리스에 반영된 커밋의 침해 가능성이 제기됨. - 참고 링크: https://app.stepsecurity.io/oss-security-feed/@subql/common?version=5.8.3
확인된 악성 동작
5.8.2와 비교해5.8.3에 다음 변경 사항이 추가됨.package.json에"postinstall": "node ./dist/project/readers/manifest-cache.js"설정- 크기 62,124바이트인
dist/project/readers/manifest-cache.js파일 dist/project/readers/index.js에__exportStar(require("./manifest-cache"), exports);가 추가돼require('@subql/common')만 실행해도 악성 코드가 작동함.- 새 파일에는 Base64 문자열 459개로 이뤄진
MANIFEST_CACHE_SEED배열이 포함됨. 문자열은 시작 키0x5a를 사용하는 롤링 XOR 방식으로 디코딩한 뒤gunzip으로 압축 해제되며, 분리된 프로세스에서new Function(...)으로 실행됨. - 디코딩된 83KB 번들은 다음 동작을 수행함.
- 환경 변수,
gh auth토큰 출력, SSH 키,.npmrc, AWS·GCP·Azure 클라우드 자격 증명, Kubernetes 및 Vault 비밀 정보, 암호화폐 지갑, AI 에이전트 설정 수집 - 수집한 정보를 RSA-OAEP와 AES-256-GCM으로 암호화해
https://ci-artifacts.dev/router로 전송 - 탈취한 GitHub 토큰으로
dependabot/github_actions/format/setup-formatter브랜치를 푸시하고,.github/workflows/codeql_analysis.yml에서toJSON(secrets)를 아티팩트로 내보내도록 구성 - 해당 커밋의 작성자를
github-advanced-security[bot]으로 위조 - 같은 호스트에 비컨을 보내는 원격 셸·명령 임플란트 설치
침해 지표
- 도메인:
ci-artifacts.dev - 패키지 타르볼 SHA-256:
031267ee37c5a84c25cb0542cbfeb49f30d5604305b0bdccdeafbedcbbe6849b manifest-cache.jsSHA-256:f0c8b0cde86b98a2869a22fd43ffcf61f1dcca252729e2be291e590e3dc5f49a- 잠금 파일:
$TMPDIR/tmp.ts018051808.lock - 브랜치 이름:
dependabot/github_actions/format/setup-formatter
관련 버전
5.8.3-onf-rt1은redteam배포 태그로 2026년 10월 5일 11:24 UTC에 게시됐으며, 32분 뒤 게시된5.8.3과 달리 페이로드가 없음.- 해당 버전이 승인된 테스트 게시인지 확인이 필요함.
권고 조치
@subql/common@5.8.3을 폐기하거나 게시 취소하고latest태그를5.8.2로 되돌림.- 커밋
506863d와5.8.3을 게시한 릴리스 워크플로 실행에서 승인되지 않은 변경 사항이 있는지 검토함. - 저장소와 조직의 npm 신뢰 게시자 설정, GitHub 토큰, CI 및 Actions 비밀 정보를 교체함.
- 저장소와 조직에서 위 브랜치명이나 워크플로가 있는지, 예상하지 못한 실행이 있었는지 점검함.
5.8.3을 설치한 사용자가 자격 증명을 교체하도록 보안 권고문을 게시함.
`5.8.3` 설치자를 위한 안내
- 해당 시스템이나 CI 러너를 침해된 것으로 간주함.
- GitHub, npm, 클라우드, Kubernetes, Vault 자격 증명을 교체하고 저장소에서 위 브랜치와 워크플로가 있는지 확인함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요