🔍 CVE-2026-27903

7.5
CVSS Score
HIGH
2026-02-26
2026-06-17 10:27
✅ 완료

🇰🇷 한글 설명

minimatch 라이브러리의 matchOne() 함수에서 비인접한 GLOBSTAR(**) 세그먼트가 포함된 패턴 처리 시 무한 재귀 백트래킹이 발생합니다. 이로 인해 입력 경로가 일치하지 않을 경우 시간 복잡도가 기하급수적으로 증가하여 서비스 거부(DoS) 상태를 유발할 수 있습니다.

💡 쉬운 설명

특수하게 조작된 패턴을 입력하면 컴퓨터가 계산을 끝내지 못하고 계속 맴돌게 만들어 시스템을 멈추게 하는 취약점입니다. 공격자가 아주 짧은 문장만 보내도 서버의 작업이 수십 초 동안 중단될 수 있습니다.

🇺🇸 원문 (English)

minimatch is a minimal matching utility for converting glob expressions into JavaScript RegExp objects. Prior to version 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, and 3.1.3, `matchOne()` performs unbounded recursive backtracking when a glob pattern contains multiple non-adjacent `**` (GLOBSTAR) segments and the input path does not match. The time complexity is O(C(n, k)) -- binomial -- where `n` is the number of path segments and `k` is the number of globstars. With k=11 and n=30, a call to the default `minimatch()` API stalls for roughly 5 seconds. With k=13, it exceeds 15 seconds. No memoization or call budget exists to bound this behavior. Any application where an attacker can influence the glob pattern passed to `minimatch()` is vulnerable. The realistic attack surface includes build tools and task runners that accept user-supplied glob arguments (ESLint, Webpack, Rollup config), multi-tenant systems where one tenant configures glob-based rules that run in a shared process, admin or developer interfaces that accept ignore-rule or filter configuration as globs, and CI/CD pipelines that evaluate user-submitted config files containing glob patterns. An attacker who can place a crafted pattern into any of these paths can stall the Node.js event loop for tens of seconds per invocation. The pattern is 56 bytes for a 5-second stall and does not require authentication in contexts where pattern input is part of the feature. Versions 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, and 3.1.3 fix the issue.

📍 영향받는 시스템

minimatch 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3 미만 버전

⚔️ 공격 벡터

사용자로부터 glob 패턴 입력을 받는 빌드 도구, CI/CD 파이프라인, 설정 인터페이스 등을 통해 조작된 패턴 주입

🛡️ 대응 방법

minimatch를 최신 패치 버전(10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3 중 해당되는 버전)으로 업데이트

🔧 검증 코드

출력된 minimatch의 버전이 취약한 버전 범위에 포함되는지 확인

Shell / Script
npm list minimatch

📊 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