Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en el análisis de los marcos de datos en Rust-WebSocket (CVE-2022-35922)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/08/2022
Última modificación:
07/11/2023

Descripción

Rust-WebSocket es una biblioteca WebSocket (RFC6455) escrita en Rust. En versiones anteriores a la 0.26.5, las conexiones de websocket que no son confiables pueden causar una interrupción del proceso por falta de memoria (OOM) en un cliente o un servidor. La causa del problema es durante el análisis de los marcos de datos. Las versiones afectadas asignan un búfer basado en el tamaño declarado del marco de datos, que puede provenir de una fuente no confiable. Cuando "Vec::with_capacity" falla en la asignación, el asignador por defecto de Rust abortará el proceso actual, matando todos los hilos. Esto afecta sólo a la implementación sync (no-Tokio). La versión asíncrona tampoco limita la memoria, pero no usa "with_capacity", por lo que el DoS puede ocurrir sólo cuando los bytes para el marco de datos o el mensaje sobredimensionados son realmente entregados por el atacante. Los bloqueos son corregidos en versión 0.26.5, al imponer límites de tamaño de dataframe por defecto. Es recomendado a usuarios afectados actualizar a esta versión. Es recomendado a usuarios que no puedan actualizar filtrar el tráfico de websocket externamente o que sólo acepten tráfico confiable

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:rust-websocket_project:rust-websocket:*:*:*:*:*:*:*:* 0.26.5 (excluyendo)
cpe:2.3:o:fedoraproject:fedora:35:*:*:*:*:*:*:*
cpe:2.3:o:fedoraproject:fedora:36:*:*:*:*:*:*:*