
# CVE-2026-2964 교육용 실습 랩 web-audio-recorder-js의 프로토타입 오염 취약점으로 인해 RCE(원격 코드 실행)로 이어지는 CVE-2026-2964를 시연하는 교육용 랩입니다. 취약한 서버와 패치된 서버, 설정 스크립트, 공격 페이로드를 포함하여 실습형 보안 교육을 제공합니다.
이 저장소는 web‑audio‑recorder‑js 라이브러리의 프로토타입 오염 취약점인 CVE‑2026‑2964에 대한 완전한 실습 환경을 포함하며, 특정 조건에서 원격 코드 실행(RCE)으로 이어질 수 있습니다.
이 실습에는 다음이 포함됩니다:
index-vulnerable.js)index-fixed.js)사전 요구 사항:
npm(Node.js와 함께 제공됨)curl(설치 중 라이브러리 파일 다운로드용)저장소를 클론하고 의존성을 설치합니다:
git clone https://github.com/bughuntblueprint/cve-2026-2964-lab.git
cd cve-2026-2964-lab
npm install
설치 과정에서 higuma GitHub 저장소에서 원본 WebAudioRecorder.js를 자동으로 다운로드하여 폴더에 배치합니다.
lib/수동으로 설정을 실행하려면:
npm run setup
취약한 서버는 3000 포트에서 실행되며, 프로토타입 오염으로 이어지는 사용자 제어 구성을 수락하도록 구성되어 있습니다.
node index-vulnerable.js
예상 출력:
Original WebAudioRecorder loaded successfully.
Server is running on http://localhost:3000
이제 http://localhost:3000/api/audio/config로 요청을 보낼 수 있습니다. 서버는 들어오는 모든 페이로드를 기록하고 오염이 발생했는지 여부를 표시합니다.
수정된 서버는 3000 포트에서 실행되며, 재귀적 키 살균과 허용 목록을 모두 적용하여 위험한 키가 라이브러리 생성자에 도달하기 전에 차단합니다. package.json을 수정하고 main을 index-fixed.js로 지정해야 합니다.
node index-fixed.js
예상 출력:
Original WebAudioRecorder loaded successfully.
Server is running on http://localhost:3000
이 실습은 교육 목적으로만 제공됩니다. 프로덕션 시스템이나 명시적 승인 없이 어떤 대상에 대해서도 실행하지 마십시오. 제시된 기술은 개발자와 보안 전문가가 취약점을 이해하고 적절한 방어 조치를 적용하는 데 도움을 주기 위한 것입니다.