# Bitwarden CLI npm 패키지 하이재킹 – 개발자 인증정보 대규모 탈취 공격 발견

> Clean Markdown view of GeekNews topic #28819. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=28819](https://news.hada.io/topic?id=28819)
- GeekNews Markdown: [https://news.hada.io/topic/28819.md](https://news.hada.io/topic/28819.md)
- Type: news
- Author: [darjeeling](https://news.hada.io/@darjeeling)
- Published: 2026-04-23T23:08:00+09:00
- Updated: 2026-04-23T23:08:00+09:00
- Original source: [research.jfrog.com](https://research.jfrog.com/post/bitwarden-cli-hijack/)
- Points: 2
- Comments: 1

## Topic Body

JFrog 보안 연구팀이 npm의 `@bitwarden/cli` 2026.4.0 버전이 하이재킹된 것을 발견했다. 정상적인 Bitwarden 메타데이터와 브랜딩을 그대로 유지하면서, `preinstall` 스크립트와 `bw` 바이너리 진입점만 악성 로더(`bw_setup.js`)로 교체한 형태다.  
  
#### 동작 방식  
  
설치 시 로더가 먼저 Bun 런타임을 GitHub에서 다운로드한 뒤, 난독화된 JavaScript 페이로드(`bw1.js`)를 실행한다. Node.js 대신 Bun을 사용하는 것 자체가 탐지 우회 전략이다.  
  
페이로드는 세 가지 수집기를 통해 개발자 워크스테이션과 CI 환경의 인증정보를 광범위하게 수집한다.  
  
- **파일시스템 수집기**: SSH 키(`~/.ssh/`), Git 자격증명(`.git-credentials`), npm 토큰(`~/.npmrc`), `.env`, AWS 자격증명(`~/.aws/credentials`), GCP 크리덴셜(`~/.config/gcloud/credentials.db`) 등  
- **셸/환경 수집기**: `gh auth token` 명령 실행, `process.env` 스캔을 통한 GitHub·npm 토큰 패턴 매칭  
- **GitHub Actions 수집기**: 토큰 권한이 있는 레포에 워크플로우를 주입해 Actions 시크릿까지 추출  
  
특히 주목할 점은 `~/.claude.json`, `~/.claude/mcp.json`, `~/.kiro/settings/mcp.json` 등 **AI 도구 및 MCP 설정 파일**까지 수집 대상에 포함되어 있다는 것이다.  
  
#### 이중 유출 경로  
  
탈취한 데이터는 gzip 압축 후 AES-256-GCM + RSA-OAEP 하이브리드 암호화를 거쳐 전송된다.  
  
- **1차 경로**: `audit.checkmarx.cx/v1/telemetry`로 HTTPS POST (정상 보안 서비스처럼 위장)  
- **2차 경로 (GitHub 악용)**: 1차 실패 시 GitHub 커밋 메시지에서 `LongLiveTheResistanceAgainstMachines`라는 마커로 이중 Base64 인코딩된 PAT를 검색하여 추출. `beautifulcastle`이라는 마커와 RSA 서명 검증을 통해 대체 유출 도메인도 동적으로 복구한다. 최종적으로 피해자의 GitHub 계정에 새 레포를 생성하고 암호화된 JSON을 `results/` 디렉토리에 업로드한다.  
  
#### 감염 판별  
  
내장된 정상 Bitwarden CLI 메타데이터는 `2026.3.0`인데 패키지 루트는 `2026.4.0`으로 되어 있어, 정상 빌드 파이프라인이 아닌 외부에서 악성 레이어를 씌운 것으로 분석된다.  
  
#### 대응 방법  
  
해당 버전 설치 이력이 있다면 해당 호스트의 모든 인증정보가 유출되었다고 간주해야 한다.  
  
- `npm uninstall -g @bitwarden/cli` 및 캐시 정리  
- GitHub PAT, npm 토큰, AWS 액세스 키 전체 로테이션  
- Azure Key Vault / GCP Secret Manager 감사 로그 확인  
- GitHub Actions 워크플로우에서 비인가 실행 이력 점검  
- `audit.checkmarx.cx` 및 `94.154.172.43` 네트워크 차단  
- AI 도구 설정 파일(Claude, Kiro 등)의 민감 정보 노출 여부 확인  
  
일반적인 npm 크리덴셜 스틸러를 넘어, 공급망 침해 + 다단계 시크릿 탈취 + GitHub 인프라 무기화를 결합한 정교한 공격이다.

## Comments



### Comment 56159

- Author: sanghunka
- Created: 2026-04-23T23:25:25+09:00
- Points: 1

와 이건 좀 충격이네요
