Actualización beta privada de UmbrellaX
Durante nuestra revisión de seguridad, encontramos problemas graves en varias bibliotecas de código abierto utilizadas para cifrado y comunicación segura. Las correcciones locales están listas, pero aún necesitan una verificación completa y una revisión independiente. No lanzaré la versión beta hasta que esté seguro de que estos riesgos se han solucionado.
Aquí está la lista completa en lenguaje sencillo. Abra una sección para ver qué podría salir mal, un ejemplo cotidiano y la referencia del parche.
Los secretos de grupo descifrados podrían dejar copias adicionales en la memoria o en los diagnósticos. El texto cifrado incorrecto, los mensajes de bienvenida, las propuestas, las rutas de actualización, la falta de claves locales, las fallas de números aleatorios, la hora inusual del sistema y los límites de época podrían cerrar la aplicación en lugar de devolver un error seguro. Algunas comprobaciones de integridad del árbol y longitud de la ruta tampoco se garantizaron en todas las rutas de lanzamiento.
Por ejemplo, una actualización de grupo rota recibida de la red debe rechazarse sin cerrar el Messenger, omitir una verificación de integridad o exponer bytes de mensaje en un informe de fallas.
Solución local preparada, verificación en curso.
Detalles técnicos: openmls 0.8.1 | UMB-117, UMB-118, UMB-120, UMB-121, UMB-125, UMB-128, UMB-129, UMB-130, UMB-131, UMB-132, UMB-133, UMB-134, UMB-135, UMB-136, UMB-137, UMB-138, UMB-139
Los registros MLS eliminados o reemplazados podrían dejar copias serializadas o cuerpos de propuestas ocultos en la memoria. Las instantáneas de grupo necesitaban reemplazo atómico con alcance, el acceso de depuración necesitaba redacción y un modo de persistencia opcional almacenaba texto codificado legible en lugar de datos cifrados autenticados.
Por ejemplo, eliminar un grupo también debe eliminar sus propuestas pendientes ocultas, y una opción de almacenamiento no debe parecer cifrada cuando solo convierte datos en texto legible.
Solución local preparada, verificación en curso.
Detalles técnicos: openmls_memory_storage 0.5.0 | UMB-119, UMB-212, UMB-213, UMB-214
Un backend opcional no utilizado todavía introdujo un paquete vulnerable en el inventario de dependencia. El material privado de HPKE también necesitaba una redacción más estricta y una limpieza de memoria.
Por ejemplo, un backend que no utilizamos no debería incluir un paquete vulnerable conocido en una versión, y una impresión de error nunca debe contener una clave privada de HPKE.
Solución local preparada, verificación en curso.
Detalles técnicos: hpke-rs 0.6.1 | RUSTSEC-2026-0124
El generador aleatorio y los valores HPKE temporales necesitaban una limpieza real. Un descifrado autenticado fallido también podría dejar en la memoria un búfer de texto plano parcialmente modificado.
Por ejemplo, cuando un mensaje falla en la autenticación, el búfer de texto sin formato a medio procesar debe borrarse inmediatamente.
Solución local preparada, verificación en curso.
Detalles técnicos: hpke-rs-rust-crypto 0.6.1 | UMB-122
El estado aleatorio, la salida de derivación de claves, los bytes de clave privada y los buffers de cifrado fallidos necesitaban limpieza. Las longitudes nonce no válidas y las solicitudes de intercambio de claves no admitidas podrían llegar a las rutas de finalización del proceso.
Por ejemplo, un nonce con formato incorrecto debe devolver un error normal en lugar de cerrar el mensajero.
Solución local preparada, verificación en curso.
Detalles técnicos: openmls_rust_crypto 0.5.1 | UMB-122, UMB-123, UMB-124
La firma de nonces, recursos compartidos, bytes escalares y una cadena secreta temporal legible necesitaba limpieza en las rutas de éxito y error. Una característica no utilizada también generó una cadena de dependencia no mantenida.
Por ejemplo, los valores temporales utilizados para una firma de grupo no deben permanecer legibles en la memoria después de que la firma finaliza o falla.
Solución local preparada, verificación en curso.
Detalles técnicos: frost-core 3.0.0 | local audited patch
Las claves pseudoaleatorias descartadas y los bloques de expansión de claves intermedios podrían permanecer en la memoria después de que se produjera una clave final.
Por ejemplo, una vez que una clave de sesión está lista, se deben borrar los ingredientes temporales utilizados para obtenerla.
Solución local preparada, verificación en curso.
Detalles técnicos: hkdf 0.12.4 | local compatibility backport
Los bloques de claves derivados, los resúmenes de claves de gran tamaño y los resultados de hash internos en la rama HMAC compatible podrían permanecer en la memoria normal.
Por ejemplo, verificar que un mensaje sea auténtico no debe dejar atrás bytes derivados de claves reutilizables.
Solución local preparada, verificación en curso.
Detalles técnicos: hmac 0.12.1 | local compatibility backport
La opción de limpieza disponible estaba desactivada de forma predeterminada y cubría solo una parte del estado derivado de clave temporal y almacenado.
Por ejemplo, completar una verificación de autenticación debería limpiar los bloques derivados de claves tanto temporales como almacenados.
Solución local preparada, verificación en curso.
Detalles técnicos: hmac 0.13.0 | local audited patch
El estado de funcionamiento de SHA-256 y SHA-512 y los contadores de bloques necesitaban una limpieza de tiempo de caída en la rama compatible.
Por ejemplo, el hash de un secreto durante la derivación de la clave no debe dejar el estado de funcionamiento del motor hash en la memoria reutilizable.
Solución local preparada, verificación en curso.
Detalles técnicos: sha2 0.10.9 | local compatibility backport
Una entrada dañada podría solicitar una asignación enorme, leer más allá de su campo declarado, realizar un bucle sin progreso o provocar desbordamiento y rutas de pánico. Los diagnósticos de vectores secretos y las entradas parciales fallidas también necesitaban limpieza.
Por ejemplo, un mensaje pequeño que afirma falsamente que contiene un campo enorme no debe consumir mucha memoria ni atrapar la aplicación en un bucle sin fin.
Solución local preparada, verificación en curso.
Detalles técnicos: tls_codec 0.4.2 | local audited patch
La clave de integridad del mensaje STUN se podía imprimir en el diagnóstico y no se borraba explícitamente con el texto de la credencial temporal.
Por ejemplo, un registro de errores de conexión no debe revelar el secreto utilizado para autenticar una solicitud de retransmisión.
Solución local preparada, verificación en curso.
Detalles técnicos: stun 0.17.1 | audit patch 6e5cbb42
Una contraseña TURN de larga duración se almacenaba como una cadena normal y necesitaba un borrado explícito cuando se destruía el cliente.
Por ejemplo, finalizar una llamada no debe dejar su contraseña de retransmisión en la memoria del antiguo objeto cliente.
Solución local preparada, verificación en curso.
Detalles técnicos: turn 0.17.1 | audit patch 6e5cbb42
Los nombres de usuario y contraseñas de TURN se almacenaron como cadenas normales y se imprimieron automáticamente en la salida de depuración de ICE.
Por ejemplo, un informe de conexión de llamada puede indicar que existen credenciales, pero no debe imprimir el nombre de usuario ni la contraseña.
Solución local preparada, verificación en curso.
Detalles técnicos: webrtc-ice 0.17.1 | audit patch 6e5cbb42
La entrada de derivación de claves de medios, las claves derivadas, las sales SRTP/SRTCP almacenadas y el estado de funcionamiento del cifrado necesitaban una limpieza confiable.
Por ejemplo, una vez finalizada una llamada cifrada, sus claves multimedia temporales y sales no deben permanecer en los buffers normales.
Solución local preparada, verificación en curso.
Detalles técnicos: webrtc-srtp 0.17.1 | audit patch 6e5cbb42
Para notas de beta y novedades de acceso, sigue mi cuenta personal de X.