[Actualización 18/08/2021] Múltiples vulnerabilidades en sistemas operativos en tiempo real (RTOS)

Fecha de publicación 30/04/2021
Importancia
5 - Crítica
Recursos Afectados
  • Amazon FreeRTOS, versión 10.4.1;
  • Apache Nuttx OS, versión 9.1.0;
  • ARM CMSIS-RTOS2, versiones anteriores a 2.1.3;
  • ARM Mbed OS, versión 6.3.0;
  • ARM mbed-uallaoc, versión 1.3.0;
  • Software Cesanta Mongoose OS, versión v2.17.0;
  • eCosCentric eCosPro RTOS, versiones 2.0.1 a 4.5.3;
  • SDK de dispositivo de Google Cloud IoT, versión 1.0.2;
  • Linux Zephyr RTOS, versiones anteriores a 2.4.0;
  • Media Tek LinkIt SDK, versiones anteriores a 4.6.1;
  • Micrium OS, versiones 5.10.1 y anteriores;
  • Micrium uCOS II / uCOS III Versiones 1.39.0 y anteriores;
  • NXP MCUXpresso SDK, versiones anteriores a 2.8.2;
  • NXP MQX, versiones 5.1 y anteriores;
  • Redhat newlib, versiones anteriores a 4.0.0;
  • RIOT OS, versión 2020.01.1;
  • Samsung Tizen RT RTOS, versiones anteriores a 3.0.GBB;
  • TencentOS-tiny, versión 3.1.0;
  • Texas Instruments CC32XX, versiones anteriores a 4.40.00.07;
  • Texas Instruments SimpleLink MSP432E4XX;
  • Texas Instruments SimpleLink-CC13XX, versiones anteriores a 4.40.00;
  • Texas Instruments SimpleLink-CC26XX, versiones anteriores a 4.40.00;
  • Texas Instruments SimpleLink-CC32XX, versiones anteriores a 4.10.03;
  • Uclibc-NG, versiones anteriores a 1.0.36;
  • Windriver VxWorks, anterior a 7.0.

[Actualización 07/05/2021]

  • Micrium uC/LIB versión 1.38.xx, versión 1.39.00;
  • Zephyr Project RTOS, versiones anteriores a la 2.5.

[Actualización 18/08/2021]

  • BlackBerry QNX SDP, versión 6.5.0 SP1 y anteriores;
  • BlackBerry QNX OS para productos de seguridad, versión 1.0.1 y anteriores que cumplen con las normas IEC 61508 y/o ISO 26262;
  • BlackBerry QNX OS para productos médicos, versión 1.1 y anteriores que cumplen con la norma IEC 62304.

Se puede consultar un listado completo de los productos QNX afectados en su web.

Descripción

Se han identificado múltiples vulnerabilidades en sistemas operativos en tiempo real (RTOS) de múltiples fabricantes, a través de un conjunto de vulnerabilidades relacionadas con el uso de funciones de asignación de memoria, como malloc, calloc, realloc, memalign, valloc, pvalloc, etc., y que se han dado a conocer en un informe denominado 'BadAlloc', Estas vulnerabilidades podrían permitir a un atacante realizar una ejecución remota de código o causar un bloqueo del sistema afectado.

Solución

Adicionalmente, CISA recomienda a los usuarios afectados las siguientes medidas de mitigación:

  • Minimice la exposición de la red para todos los dispositivos, en especial desde Internet.
  • Ubique las redes del sistema de control y los dispositivos remotos detrás de firewalls, y separados de la red empresarial.
  • Cuando se requiera acceso remoto, utilice métodos seguros, como redes privadas virtuales (VPN).

[Actualización 07/05/2021]

  • Micrium uC/LIB: descargar ultima actualización;
  • Zephyr Project, versión 2.5 o posterior.

[Actualización 18/08/2021]

  • Blackberry QNX 6.5.0SP1;
  • Blackberry QNX OS for Safety 1.0.2;
  • Blackberry QNX OS for Medical 1.1.1.
Detalle

Los investigadores, David Atch, Omri Ben Bassat y Tamir Ariel, del equipo Sección 52 de Microsoft, integrado como equipo de investigación de seguridad Azure Defender para IoT, han descubierto un conjunto de vulnerabilidades críticas de asignación de memoria en dispositivos IoT y OT. Estas vulnerabilidades, denominadas 'BadAlloc', afectan a las funciones de asignación de memoria estándar que abarcan sistemas operativos en tiempo real (RTOS) de diferentes fabricantes, kits de desarrollo de software integrados (SDK) e implementaciones de bibliotecas estándar C (libc).

Las vulnerabilidades encontradas se deben al uso de funciones de asignación de memoria vulnerables, como malloc, calloc, realloc, memalign, valloc, pvalloc, etc. La implementación de estas funciones en los productos afectados no ha incorporado las validaciones de entrada adecuadas. Sin estas validaciones de entrada, un atacante podría aprovechar la función de asignación de memoria para realizar un desbordamiento de la pila, lo que provocaría la ejecución de código malicioso en el dispositivo.

Se han asignado los siguientes identificadores para estas vulnerabilidades: CVE-2021-30636, CVE-2021-27431, CVE-2021-27433, CVE-2021-27435, CVE-2021-27427, CVE-2021-22684, CVE-2021-27439, CVE-2021-27425, CVE-2021-26461, CVE-2020-35198, CVE-2020-28895, CVE-2021-31571, CVE-2021-31572, CVE-2021-27417, CVE-2021-3420, CVE-2021-27411, CVE-2021-26706, CVE-2021-27421, CVE-2021-22680, CVE-2021-27419, CVE-2021-27429, CVE-2021-22636, CVE-2021-27504 y CVE-2021-27502.

[Actualización 07/05/2021]

  • La asignación de memoria no verificada puede dar lugar a una asignación de memoria arbitraria, dando lugar a un comportamiento inesperado, como la asignación de bloques de memoria muy pequeños en lugar de muy grandes. Se han asignado los identificadores CVE-2021-27411 y CVE-2021-27407 para estas vulnerabilidades.
  • La asignación de memoria no verificada puede conducir a la asignación de memoria arbitraria que podría permitir a un atacante provocar un cierre inesperado del servicio o la inyección/ejecución remota de código. Se ha asignado el identificador CVE-2021-26706 para esta vulnerabilidad.
  • La función vulnerable sys_mem_pool_alloc, podría conducir a la asignación arbitraria de memoria, lo que resulta en un comportamiento inesperado, como el cierre inesperado del servicio o la ejecución de código. Se ha asignado el identificador CVE-2020-13603 para esta vulnerabilidad.

[Actualización 18/08/2021]

  • Diversos productos de BlackBerry QNX son vulnerables a un desbordamiento de enteros en la función de tiempo de ejecución de C calloc(), que podría conducir a la asignación de memoria arbitraria, lo que resultaría en un comportamiento inesperado, como una interrupción del servicio, una condición de denegación de servicio o la ejecución de código inyectado. Se ha asignado el identificador CVE-2021-22156 para esta vulnerabilidad.

Encuesta valoración