🔍 CVE-2026-14257

7.5
CVSS Score
HIGH
2026-07-23
2026-10-24 13:10
✅ 완료

🇰🇷 한글 설명

brace-expansion 5.0.7 이하 버전에서 메모리 고갈을 통한 서비스 거부(DoS) 취약점이 발견되었습니다. expand() 함수가 결과 개수는 제한하지만 개별 문자열의 길이를 제한하지 않아, 중첩된 중괄호 패턴을 통해 메모리를 급격히 소모시켜 프로세스를 중단시킬 수 있습니다.

💡 쉬운 설명

특수하게 조작된 짧은 문장을 입력하면 컴퓨터의 메모리를 순식간에 모두 써버려 프로그램이 멈추게 만드는 공격입니다. 중괄호를 반복해서 사용하여 아주 긴 결과물을 만들어내는 방식입니다.

🇺🇸 원문 (English)

brace-expansion through 5.0.7 is vulnerable to denial of service via memory exhaustion. The expand() function limits the number of results with a max option (default 100,000) but does not bound the length of each result string. By chaining multiple brace groups, an attacker keeps the result count under the limit while making each result progressively longer, so total memory scales with both count and string length until the process hits a fatal, uncatchable out-of-memory error. About 7.5 KB of input ('{a,b}'.repeat(1500)) crashes a default Node.js process. Any application that passes attacker-influenced strings to brace-expansion.expand() - directly or transitively via minimatch / glob brace patterns - can be crashed by a small request. Fixed in 5.0.8 by adding a maxLength option (default 4,000,000) that bounds accumulated output and intermediate arrays.

📍 영향받는 시스템

brace-expansion 5.0.7 이하 버전 (minimatch 또는 glob을 통해 간접적으로 영향을 받을 수 있음)

⚔️ 공격 벡터

공격자가 제어 가능한 문자열을 brace-expansion.expand() 함수에 전달하여 메모리 고갈 유도

🛡️ 대응 방법

brace-expansion 버전을 5.0.8 이상으로 업데이트하여 maxLength 제한 적용

🔧 검증 코드

출력된 결과에서 brace-expansion의 버전이 5.0.8 미만인지 확인

Shell / Script
npm list brace-expansion

📊 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