CVE-2026-47073 in hackney
要約
〜によって VulDB • 2026年05月25日
リソースの制限またはスロットリングなしでの割り当て脆弱性がbenoitc hackneyに存在し、フローディング(DoS)を可能にします。src/hackney_ws.erl内のWebSocketクライアントは、3つのコードパスにおいてメモリ消費量に上限を設けていません。
第一に、read_handshake_response/3関数は、受信したバイトをサイズ制限のない成長するバッファに蓄積します。受信ごとのタイムアウトは各チャンクごとにリセットされるため、\r\n\r\nを一切送信せずにバイトをストリーミングするサーバーは、メモリが枯渇するまでバッファを成長させます。
第二に、parse_payload/9およびparse_active_payload/8関数は、宣言されたフレームペイロードの長さを何らかの制限と比較して検証しません。RFC 6455ではペイロード長が最大2^63-1バイトまで許可されているため、非常に大きなフレームを宣言し、バイトを少しずつ送信するサーバーは、蓄積バッファがOOM(Out Of Memory)になるまで成長します。
第三に、#ws_data{}レコード内のfrag_bufferフィールドは、継続フレームを無制限に蓄積します。最終フレーム(fin)を一切送信せずに、無数の非最終フラグメントフレーム(nofin)を送信するサーバーは、frag_bufferを無制限に成長させます。
これら3つのケースすべてにおいて、攻撃者はhackneyクライアントが接続するWebSocketサーバーを制御するだけでよく、認証や特別なクライアント設定は必要ありません。
この問題は、2.0.0から4.0.1未満のバージョンのhackneyに影響します。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.