Rust-WebSocket是基于Rust的WebSocket库。 Rust-WebSocket 0.26.5之前版本存在安全漏洞,该漏洞源于不受信任的websocket连接可能会导致客户端或服务器中的内存不足(OOM)进程中止,问题的根本原因是在数据帧解析期间,受影响的版本将根据声明的数据帧大小分配缓冲区,该大小可能来自不受信任的来源,当“Vec::with_capacity”分配失败时,默认的Rust分配器将中止当前进程,杀死所有线程。这仅影响同步(non-Tokio)实现,异步版本也不限制内存,但不使用“with_capacity”,因此只有当攻击者实际传递了超大数据帧或消息的字节时才会发生DoS。 在0.26.5版本中通过施加默认数据帧大小限制进行了修复,建议受影响的用户更新到此版本,建议无法升级的用户从外部过滤websocket流量或只接受受信任的流量。
Rust-WebSocket是基于Rust的WebSocket库。 Rust-WebSocket 0.26.5之前版本存在安全漏洞,该漏洞源于不受信任的websocket连接可能会导致客户端或服务器中的内存不足(OOM)进程中止,问题的根本原因是在数据帧解析期间,受影响的版本将根据声明的数据帧大小分配缓冲区,该大小可能来自不受信任的来源,当“Vec::with_capacity”分配失败时,默认的Rust分配器将中止当前进程,杀死所有线程。这仅影响同步(non-Tokio)实现,异步版本也不限制内存,但不使用“with_capacity”,因此只有当攻击者实际传递了超大数据帧或消息的字节时才会发生DoS。 在0.26.5版本中通过施加默认数据帧大小限制进行了修复,建议受影响的用户更新到此版本,建议无法升级的用户从外部过滤websocket流量或只接受受信任的流量。