30秒で判断
対応すべき人:
- Node.js アプリで
wsパッケージを使用している - WebSocket エンドポイントを外部(インターネット)に公開している
対応不要な人:
wsを使用していない(Socket.IO 等も内部的に使用する場合があるため要確認)- WebSocket エンドポイントを内部ネットワークのみに制限しており、信頼できるクライアントのみが接続する
確認コマンド:
# インストール済みバージョンの確認
npm list ws
# package-lock.json から再帰的に確認
cat package-lock.json | grep -A2 '"ws"' | head -20
# socket.io経由での間接依存も確認
npm list ws --all 2>/dev/null | head -20
概要
ws は Node.js 向けの WebSocket クライアント・サーバライブラリで、週間ダウンロード数は1億件を超える広く使われたパッケージです。多くの Node.js WebSocket 実装(Socket.IO 等を含む)が内部で利用しています。
CVE-2026-48779 では、攻撃者が細工された非常に小さなフラグメントと大量のデータチャンクを組み合わせて送信することで、サーバ側で大量のメモリが消費され続け、最終的にメモリ枯渇によるサービス停止(DoS)を引き起こせます。特別な認証は不要で、WebSocket ハンドシェイクが成立した後であれば誰でも実行可能です。
CVSSベクトル(推定)
| 項目 | 値 |
|---|---|
| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| Scope | Unchanged |
| Confidentiality | None |
| Integrity | None |
| Availability | High |
| 推定CVSSスコア | 7.5 (High) |
CVSS数値スコアはNVDによる正式評価待ち(GHSAではHIGHと分類)
影響を受けるソフトウェア
| 製品 | 影響バージョン | 修正バージョン |
|---|---|---|
| ws | 5.x(5.2.5 未満) | 5.2.5 |
| ws | 6.x(6.2.4 未満) | 6.2.4 |
| ws | 7.x(7.5.11 未満) | 7.5.11 |
| ws | 8.x(8.21.0 未満) | 8.21.0 |
修正バージョンと対応手順
修正版: 使用している系のバージョンにアップデートしてください。
# ws 8.x 系を使用している場合
npm install ws@8.21.0
# ws 7.x 系を使用している場合
npm install ws@7.5.11
# package.json を更新して npm install
npm install
回避策(アップデートが困難な場合):
- WebSocket 接続数に上限を設け、単一クライアントからの過剰な接続を制限する
- リバースプロキシ(nginx 等)でメッセージサイズやレートリミットを設定する
- WebSocket エンドポイントへのアクセスを認証済みユーザのみに制限する
関連リンク
データソース: GitHub Advisory Database (GHSA)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
