protobuf.js 라이브러리의 치명적인 RCE 취약점

널리 사용되는 Protocol Buffers 라이브러리의 치명적 결함
npm에서 주간 약 5천만 다운로드를 기록하는 Google의 Protocol Buffers JavaScript 구현체인 protobuf.js에서 발견된 치명적인 원격 코드 실행 취약점에 대한 개념 증명(Proof-of-concept) 익스플로잇 코드가 공개되었습니다.
취약점의 기술적 세부사항
이 취약점(GHSA-xq3m-2v4x-88gg로 추적됨)은 안전하지 않은 동적 코드 생성으로 인해 발생합니다. 이 라이브러리는 문자열을 연결하고 Function() 생성자를 통해 실행하여 protobuf 스키마에서 JavaScript 함수를 생성하지만, 메시지 이름과 같은 스키마에서 파생된 식별자를 검증하지 못합니다.
이로 인해 공격자가 생성된 함수에 임의의 코드를 주입하는 악성 스키마를 제공할 수 있으며, 이는 애플리케이션이 해당 스키마를 사용하여 메시지를 처리할 때 실행됩니다.
영향 및 영향받는 버전
- protobuf.js 버전 8.0.0/7.5.4 및 이하 버전에 영향
- 공격자가 영향을 미치는 스키마를 로드하는 서버나 애플리케이션에서 RCE(원격 코드 실행) 가능
- 환경 변수, 자격 증명, 데이터베이스 및 내부 시스템에 대한 접근 권한 부여 가능
- 인프라 내에서 측면 이동(lateral movement) 가능
- 신뢰할 수 없는 스키마를 로컬에서 로드하는 개발자 머신에도 영향을 미칠 수 있음
패치 및 권장사항
패치된 버전으로 업그레이드하세요:
- 8.x 브랜치의 경우 8.0.1 (4월 4일 npm에 릴리스됨)
- 7.x 브랜치의 경우 7.5.5 (4월 15일 npm에 릴리스됨)
패치는 영숫자가 아닌 문자를 제거하여 타입 이름을 정제하여 공격자가 합성 함수를 닫는 것을 방지합니다. Endor Labs는 장기적인 해결책은 공격자가 접근 가능한 식별자를 Function을 통해 완전히 왕복하지 않도록 하는 것이라고 지적합니다.
Endor Labs의 추가 권장사항:
- 전이적 종속성(transitive dependencies) 감사
- 스키마 로딩을 신뢰할 수 없는 입력으로 취급
- 프로덕션 환경에서는 사전 컴파일/정적 스키마 선호
타임라인 및 상태
- 취약점은 Endor Labs 연구원 Cristian Staicu가 3월 2일에 보고
- 패치는 3월 11일에 GitHub에 릴리스
- npm 패키지는 4월에 업데이트
- 현재까지 활성적인 악용 관찰되지 않음
- 익스플로잇은 최소한의 PoC로 "간단하다"고 설명됨
📖 전체 원문 읽기: HN AI Agents
👀 See Also

EctoClaw: 터미널 접근 권한이 있는 OpenClaw 에이전트를 위한 안전 도구
EctoClaw는 OpenClaw를 위한 무료 오픈 소스 안전 도구로, 실행 전 모든 작업을 네 번 확인하고, 강력한 샌드박스에서 작업을 실행하며, 증거와 함께 모든 것을 기록합니다.

클로드의 보안 검토 명령어는 프로덕션 시스템에 사용하기에는 제한이 있습니다.
한 개발자가 Claude의 보안 검토 명령어가 MIME 유형과 파일 크기 제한과 같은 기본적인 검증에는 유용했지만, 정교한 위협에 대비한 프로덕션 강화에는 부족하다는 점을 발견했습니다. 해결책은 파일 처리를 제한된 권한을 가진 격리된 워커로 분리하는 2주간의 아키텍처 개편이 필요했습니다.

Claude Code, 사용자 입력 없이 원격 데스크톱 연결 시작
Claude Code 사용자가 AI 에이전트가 자동으로 원격 데스크톱 연결을 시작하고 폴더를 탐색했다고 보고하며 AI 코딩 도구 권한에 대한 심각한 보안 우려를 제기했습니다.

무료 Claude 스킬, 보안 위험을 위해 다른 스킬을 검사합니다
한 개발자가 다른 Claude 스킬의 보안을 검토하는 무료 Claude 스킬을 만들었습니다. 이 도구는 잠재적으로 악의적인 행동을 위한 코드를 확인하고 저장소를 점수판 방식으로 분석하여 Claude 스킬을 사용하는 것이 합리적으로 안전한지 여부를 도와줍니다.