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).

착취 단계

  1. Identify target: Locate a Node.js application using websocket-driver < 0.7.5 with the permessage-deflate extension enabled — this is often the default in frameworks built on faye-websocket.
  2. Establish WebSocket connection: Connect to the target WebSocket endpoint, negotiating the permessage-deflate extension during the handshake (include Sec-WebSocket-Extensions: permessage-deflate in the upgrade request).
  3. 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 maxLength limit but decompresses to a much larger payload (zip bomb-style technique).
  4. 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.
  5. 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-deflate negotiated, 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.js or WebSocket frame processing.
  • Network: Connections sending many frames with compressed sizes well below the configured maxLength threshold 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 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 익스플로잇

수정 사항이 있습니다.

게시된 날짜

GHSA-w4hw-qcx7-56prCRITICAL9.2
  • JavaScript logoJavaScript
  • shescape
아니요Jul 24, 2026
GHSA-gm3r-q2wp-hw87HIGH8.7
  • JavaScript logoJavaScript
  • shescape
아니요Jul 24, 2026
GHSA-q53c-4prm-w95qMEDIUM6.3
  • JavaScript logoJavaScript
  • shescape
아니요Jul 24, 2026
GHSA-8q49-2h5h-434xMEDIUM5.9
  • JavaScript logoJavaScript
  • @frontmcp/adapters
아니요Jul 24, 2026
GHSA-3r53-75j5-3g7jMEDIUM5.6
  • JavaScript logoJavaScript
  • quasar
아니요Jul 24, 2026

무료 취약성 평가

클라우드 보안 태세를 벤치마킹합니다

9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.

평가 요청

추가 Wiz 리소스

맞춤형 데모 받기

맞춤형 데모 신청하기

"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
데이비드 에슬릭최고정보책임자(CISO)
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
아담 플레처최고 보안 책임자(CSO)
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."
그렉 포니아토프스키위협 및 취약성 관리 책임자