🔍 CVE-2026-77301

7.5
CVSS Score
HIGH
2026-09-18
2026-09-24 21:16
✅ 완료

🇰🇷 한글 설명

adm-zip 라이브러리의 getData() 함수가 압축 해제 전 파일 크기를 검증하지 않고 메모리를 할당하여 발생하는 취약점입니다. 공격자가 조작된 ZIP 파일을 통해 매우 큰 압축 해제 크기를 선언하면, 시스템 메모리가 과도하게 사용되어 서비스 거부(DoS)가 발생할 수 있습니다.

💡 쉬운 설명

압축 파일 안에 실제 내용보다 훨씬 큰 크기가 적혀 있다고 속이면, 컴퓨터가 이를 믿고 엄청난 양의 메모리를 미리 준비하다가 멈춰버리는 문제입니다. 이로 인해 프로그램이 강제로 종료되거나 컴퓨터 전체가 느려질 수 있습니다.

🇺🇸 원문 (English)

adm-zip is a JavaScript library for creating and extracting ZIP archives in Node.js. Prior to 0.6.1, getData() in zipEntry.js trusts an entry's central-directory uncompressed size and allocates output memory before validating that value against the actual compressed data and decompression result. A small crafted ZIP can declare a multi-gigabyte uncompressed size, causing Buffer.alloc and decompression handling to commit excessive resident memory before CRC validation reports an error. Applications that read entries from untrusted archives can therefore be terminated by the operating system or suffer service-wide memory exhaustion. This issue is fixed in version 0.6.1.

📍 영향받는 시스템

adm-zip version 0.6.1 미만

⚔️ 공격 벡터

신뢰할 수 없는 출처의 조작된 ZIP 아카이브 파일을 업로드하거나 처리하도록 유도

🛡️ 대응 방법

adm-zip 라이브러리를 0.6.1 버전 이상으로 업데이트

🔧 검증 코드

출력된 결과에서 adm-zip의 버전이 0.6.1 미만인지 확인

Shell / Script
npm list adm-zip

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Node.js