🔍 CVE-2026-30827

7.5
CVSS Score
HIGH
2026-03-07
2026-06-17 10:32
✅ 완료

🇰🇷 한글 설명

express-rate-limit의 특정 버전에서 IPv4-mapped IPv6 주소에 대해 기본적으로 /56 서브넷 마스킹을 적용하는 취약점이 발견되었습니다. 이로 인해 모든 IPv4 클라이언트가 동일한 네트워크 키를 공유하게 되어, 한 명의 사용자가 제한을 초과하면 모든 IPv4 사용자가 차단되는 서비스 거부 현상이 발생할 수 있습니다.

💡 쉬운 설명

모든 IPv4 사용자를 하나의 그룹으로 잘못 인식하여, 한 사람이 규칙을 어기면 모든 IPv4 사용자가 접속을 차단당하는 문제입니다. 마치 아파트 전체에 하나의 출입 카드를 적용하여 한 명이 잘못하면 아파트 전체 문을 잠가버리는 것과 같습니다.

🇺🇸 원문 (English)

express-rate-limit is a basic rate-limiting middleware for Express. In versions starting from 8.0.0 and prior to versions 8.0.2, 8.1.1, 8.2.2, and 8.3.0, the default keyGenerator in express-rate-limit applies IPv6 subnet masking (/56 by default) to all addresses that net.isIPv6() returns true for. This includes IPv4-mapped IPv6 addresses (::ffff:x.x.x.x), which Node.js returns as request.ip on dual-stack servers. Because the first 80 bits of all IPv4-mapped addresses are zero, a /56 (or any /32 to /80) subnet mask produces the same network key (::/56) for every IPv4 client. This collapses all IPv4 traffic into a single rate-limit bucket: one client exhausting the limit causes HTTP 429 for all other IPv4 clients. This issue has been patched in versions 8.0.2, 8.1.1, 8.2.2, and 8.3.0.

📍 영향받는 시스템

express-rate-limit 8.0.0 이상 8.0.2, 8.1.1, 8.2.2, 8.3.0 미만 버전

⚔️ 공격 벡터

단일 IPv4 클라이언트가 요청 제한(Rate Limit)을 의도적으로 소진하여 모든 IPv4 클라이언트의 서비스 이용을 방해(DoS)

🛡️ 대응 방법

express-rate-limit를 패치된 버전(8.0.2, 8.1.1, 8.2.2, 8.3.0 이상)으로 업데이트

🔧 검증 코드

출력된 버전이 취약한 범위(8.0.0 ~ 8.3.0 미만 중 패치되지 않은 버전)에 해당하는지 확인

Shell / Script
npm list express-rate-limit

📊 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