CVE-2026-54490:
JavaScript 취약성 분석 및 완화
개요
CVE-2026-54490 is a resource limit bypass vulnerability in the websocket-driver npm package (used by the faye-websocket ecosystem) that allows WebSocket messages to exceed the configured maximum message size when the permessage-deflate compression extension is enabled. The flaw affects all versions prior to 0.7.5 of websocket-driver-node. It was discovered by Pranjali Thakur of the DepthFirst Security Research Team, first published on June 4, 2026, and added to the GitHub Advisory Database on July 15, 2026. The vulnerability carries a CVSS v4 base score of 6.3 (Medium) (Github Advisory).
기술적 세부 사항
The root cause is classified as CWE-770 (Allocation of Resources Without Limits or Throttling). In lib/websocket/driver/hybi.js, the maximum message size check is performed against the compressed frame length headers rather than the decompressed payload size. When the permessage-deflate extension is active, an attacker can craft a WebSocket message that is small in its compressed form but expands significantly upon decompression, bypassing the configured size limit entirely. The fix (commit c55679a) adds a post-decompression length check — if (payload.length > this._maxLength) return this._fail('too_large', 'WebSocket frame length too large') — applied after extension processing (Github Advisory, Patch Commit).
영향
Successful exploitation causes affected WebSocket servers or clients to accept and process messages significantly larger than their configured maximum, leading to excessive memory and CPU consumption beyond intended resource limits. The primary impact is on availability — applications may experience degraded performance, increased memory pressure, or denial of service conditions if an attacker repeatedly sends highly compressible payloads. There is no confidentiality or integrity impact; the vulnerability does not enable code execution or data exfiltration (Github Advisory).
착취 단계
- Identify target: Locate a Node.js application using
websocket-driver< 0.7.5 with thepermessage-deflateextension enabled — this is often the default in frameworks built onfaye-websocket. - Establish WebSocket connection: Connect to the target WebSocket endpoint, negotiating the
permessage-deflateextension during the handshake (includeSec-WebSocket-Extensions: permessage-deflatein the upgrade request). - Craft compressed payload: Construct a WebSocket message containing highly compressible data (e.g., a large repetitive string) that compresses to a size below the server's configured
maxLengthlimit but decompresses to a much larger payload (zip bomb-style technique). - Send oversized messages: Transmit the crafted compressed frames repeatedly; the server checks only the compressed frame length header, accepts the frames, and decompresses them into memory, consuming resources far beyond the intended limit.
- Achieve resource exhaustion: Repeated transmission of such messages causes the server process to consume excessive memory or CPU, potentially degrading or denying service to legitimate users (Github Advisory, Patch Commit).
타협의 징후
- Network: Unusual WebSocket connections with
Sec-WebSocket-Extensions: permessage-deflatenegotiated, followed by a high volume of small compressed frames from a single source IP. - Process: Node.js process exhibiting abnormally high memory consumption or CPU usage correlated with WebSocket activity; heap size growing unexpectedly during WebSocket message handling.
- Logs: Application logs showing repeated large message processing events or out-of-memory errors originating from WebSocket handler code; error logs referencing
hybi.jsor WebSocket frame processing. - Network: Connections sending many frames with compressed sizes well below the configured
maxLengththreshold but causing disproportionate server resource usage.
완화 및 해결 방법
The vulnerability is fixed in websocket-driver version 0.7.5, which checks message length after decompression by incoming extensions. All users should upgrade immediately by running npm install websocket-driver@0.7.5 or updating their package.json dependency. No configuration-based workarounds exist; the only remediation is upgrading to the patched version. Applications using faye-websocket or other packages that depend on websocket-driver should also verify their transitive dependency is updated (Github Advisory).
커뮤니티 반응
The vulnerability was discovered and responsibly disclosed by Pranjali Thakur of the DepthFirst Security Research Team. The maintainer (jcoglan) published the advisory and patch promptly. No significant broader media coverage or notable community commentary beyond standard vulnerability database aggregation has been observed for this moderate-severity issue (Github Advisory).
추가 자료
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 JavaScript 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."