El software SIDIS Prime, en versiones anteriores a la 4.0.800, presenta múltiples vulnerabilidades en componentes críticos como OpenSSL, SQLite y varios paquetes de Node.js, tal como se detalla a continuación. Siemens ha lanzado una nueva versión de SIDIS Prime y recomienda encarecidamente actualizar a la última versión disponible.
Las versiones de Siemens SIDIS Prime que se ven afectadas incluyen todas aquellas anteriores a la 4.0.800. En particular, se ha identificado un problema en los archivos ECCurve.java y ECCurve.cs de Bouncy Castle Java (BC Java) en versiones anteriores a la 1.78, en BC Java LTS antes de la 2.73.6, en BC-FJA antes de la 1.0.2.5 y en BC C# .Net antes de la 2.3.1. La importación de un certificado de curva elíptica (EC) con parámetros F2m manipulados puede llevar a un consumo excesivo de CPU durante la evaluación de los parámetros de la curva. Esta vulnerabilidad es crítica, ya que puede provocar un rendimiento deficiente del sistema, afectando la disponibilidad de los servicios.
Otra vulnerabilidad se ha descubierto en la API TLS de Bouncy Castle Java y en el proveedor JSSE, también en versiones anteriores a la 1.78. Esta vulnerabilidad permite que se produzca una fuga de información basada en el tiempo durante los handshakes que utilizan RSA, lo que puede comprometer la confidencialidad de las comunicaciones.
Además, se ha encontrado una vulnerabilidad en las APIs de criptografía de Bouncy Castle Java, que permite que un bucle infinito se produzca durante la verificación de un código Ed25519 si se utiliza una firma y una clave pública manipuladas. Esto puede llevar a problemas de rendimiento y disponibilidad en las aplicaciones que dependen de este tipo de verificación.
En el contexto del Protocolo de Acuerdo de Clave de Diffie-Hellman, se ha identificado que la validación del orden de las claves públicas puede ser explotada por atacantes remotos, lo que les permitiría forzar cálculos de exponenciación modular en el servidor que son innecesariamente costosos, provocando un consumo asimétrico de recursos. La configuración del servidor debe permitir DHE y validar el orden de la clave pública para que esta vulnerabilidad se pueda explotar eficazmente.
Por otro lado, existe una vulnerabilidad en versiones de SQLite anteriores a la 3.50.2, donde el número de términos agregados puede exceder el número de columnas disponibles, lo cual podría causar problemas de corrupción de memoria. Por tanto, se recomienda a los usuarios actualizar a la versión 3.50.2 o superior para mitigar este riesgo.
Una vulnerabilidad relacionada con el uso de valores aleatorios insuficientemente generados en el contexto de datos de formulario permite la contaminación de parámetros HTTP (HPP). Esta vulnerabilidad afecta a los archivos de programa lib/form_data.Js en versiones de form-data inferiores a 2.5.4, así como en las versiones 3.0.0 hasta 3.0.3 y 4.0.0 hasta 4.0.3.
Adicionalmente, un problema en la desencriptación de mensajes CMS (Cryptographic Message Syntax) que utilizan cifrado basado en contraseñas puede provocar lecturas y escrituras fuera de los límites. Este tipo de vulnerabilidad puede resultar en un fallo en la aplicación, provocando una Denegación de Servicio (DoS). Aunque las consecuencias de un posible ataque exitoso son severas, la probabilidad de que un atacante logre ejecutarlo es relativamente baja, dado que el soporte para el cifrado basado en contraseñas en los mensajes CMS es raramente utilizado.
Asimismo, una vulnerabilidad en la API de cliente HTTP de OpenSSL puede permitir lecturas fuera de los límites si la variable de entorno 'no_proxy' está configurada y la porción de host de la URL HTTP es una dirección IPv6. Esto también podría resultar en una Denegación de Servicio para las aplicaciones que utilizan esta API. Sin embargo, es importante señalar que el código vulnerable fue introducido en lanzamientos posteriores como 3.0.16, 3.1.8, 3.2.4, 3.3.3, 3.4.0 y 3.5.0, y que los módulos FIPS en versiones anteriores no se ven afectados por este problema.
Finalmente, se ha descubierto una falla de seguridad en mixmark-io turndown hasta la versión 7.2.1, que afecta a una función desconocida del archivo src/commonmark-rules.js. La manipulación de esta función resulta en una complejidad de expresiones regulares ineficiente, lo que abre la puerta a ataques que pueden iniciarse de forma remota. Este exploit ya ha sido publicado y, por lo tanto, puede ser utilizado por actores maliciosos.
En lo que respecta a node-forge, se ha identificado una vulnerabilidad de conflicto en la interpretación (CWE-436) en versiones 1.3.1 y anteriores, que permite a atacantes no autenticados manipular estructuras ASN.1, lo que puede desincronizar validaciones de esquema y eludir verificaciones criptográficas y decisiones de seguridad downstream.
Se recomienda encarecidamente a todos los usuarios y administradores de sistemas que actualicen SIDIS Prime a la versión 4.0.800 o superior, así como a los componentes relacionados, para mitigar estas vulnerabilidades y proteger adecuadamente sus sistemas.
La vulnerabilidad de validación de entrada incorrecta en el módulo de análisis de `qs`, que afecta a las versiones anteriores a la 6.14.1, permite que un atacante realice un ataque de denegación de servicio (DoS) a través de HTTP. El problema radica en la opción `arrayLimit` de `qs`, que no establece límites para la notación de corchetes (por ejemplo, `a[]=1&a[]=2`), lo que facilita a los atacantes provocar un agotamiento de memoria y, por ende, un DoS. Las aplicaciones que utilizan `arrayLimit` como protección contra este tipo de ataques son vulnerables.
En este contexto, la opción `arrayLimit` únicamente verifica los límites para la notación indexada (como `a[0]=1&a[1]=2`), ignorando completamente la notación de corchetes. El código vulnerable se encuentra en la línea 159 del archivo `lib/parse.js`, donde se ejecuta la función `utils.combine([], leaf)` sin validar contra `options.arrayLimit`. Por el contrario, el código de trabajo en la línea 175 sí comprueba que `index` sea menor o igual a `options.arrayLimit` antes de crear los arrays. Esto significa que el manejo de la notación de corchetes no se restringe, permitiendo que un atacante pueda sobrepasar el límite establecido.
Se han realizado pruebas para demostrar esta vulnerabilidad. En la primera prueba, al ejecutar `npm install qs` y luego analizar una cadena como `qs.parse('a[]=1&a[]=2&a[]=3&a[]=4&a[]=5&a[]=6', { arrayLimit: 5 })`, se observa que el resultado arroja un array con una longitud de 6, cuando debería haberse limitado a un máximo de 5. En una segunda prueba diseñada para demostrar el DoS, se ejecuta un ataque mediante la creación de una cadena extremadamente larga con `a[]=` seguida de un gran número de elementos (en este caso, 10,000), lo que provoca que el resultado sea un array con una longitud de 10,000, superando así el límite de 100 establecido. Esto evidencia cómo un atacante puede agotar la memoria del servidor, causando que la aplicación se bloquee o se vuelva no receptiva, lo que resulta en un servicio indisponible para todos los usuarios.
El impacto en la vida real de esta vulnerabilidad es significativo, ya que una sola solicitud maliciosa puede provocar un fallo en el servidor sin necesidad de autenticación. Además, la facilidad para automatizar y escalar este tipo de ataques lo convierte en un riesgo considerable para cualquier endpoint que procese cadenas de consulta utilizando la notación de corchetes.
Para mitigar esta vulnerabilidad, se recomienda actualizar a la versión 4.0.800 o posterior de `qs`. Esta situación se enmarca dentro de las vulnerabilidades catalogadas bajo CWE-20, que se relacionan con la validación incorrecta de la entrada.
Por otro lado, el framework de herramientas frontend Vite, antes de las versiones 7.1.5, 7.0.7, 6.3.6 y 5.4.20, presentaba una vulnerabilidad que permitía servir archivos que comenzaban con el mismo nombre que el directorio público, eludiendo las configuraciones de `server.fs`. Este problema afecta únicamente a las aplicaciones que exponen explícitamente el servidor de desarrollo de Vite a la red y utilizan la característica del directorio público, que está habilitada por defecto, además de contar con un enlace simbólico en dicho directorio. Las versiones corregidas abordan esta problemática.
Asimismo, una vulnerabilidad relacionada con la limitación incorrecta de nombres de ruta a un directorio restringido (CWE-22) también afectó a Vite. En las versiones anteriores a 7.1.5, 7.0.7, 6.3.6 y 5.4.20, cualquier archivo HTML en la máquina era servido sin considerar las configuraciones de `server.fs`, lo que afecta a las aplicaciones que habilitan el servidor de desarrollo de Vite a la red y utilizan `appType: 'spa'` o `appType: 'mpa'`. Esta vulnerabilidad también afecta al servidor de vista previa, que permitía servir archivos HTML que no se encontraban en el directorio de salida. Este problema ha sido corregido en las versiones mencionadas.
Finalmente, la biblioteca Axios, utilizada como cliente HTTP basado en promesas para navegadores y Node.js, presenta una vulnerabilidad en versiones anteriores a 0.30.2 y 1.12.0. Cuando Axios se ejecuta en Node.js y se le proporciona una URL con el esquema `data:`, no realiza una solicitud HTTP, sino que su adaptador HTTP de Node decodifica toda la carga útil en memoria, lo que puede llevar a un agotamiento de memoria si un atacante proporciona un URI `data:` extremadamente grande. Esta situación es crítica, ya que ignora las configuraciones de `maxContentLength` y `maxBodyLength`, que solo protegen las respuestas HTTP. Las versiones 0.30.2 y 1.12.0 corrigen esta vulnerabilidad.
Es esencial que los desarrolladores y administradores de sistemas mantengan sus dependencias actualizadas y estén al tanto de las vulnerabilidades que pueden afectar a sus aplicaciones, implementando las correcciones necesarias para salvaguardar la integridad y disponibilidad de sus servicios.
La herramienta `glob` se utiliza para hacer coincidir archivos empleando patrones que el sistema operativo reconoce. A partir de la versión 10.2.0 y hasta las versiones 10.5.0 y 11.1.0, la interfaz de línea de comandos (CLI) de `glob` presenta una vulnerabilidad de inyección de comandos en su opción -c/--cmd. Esta vulnerabilidad permite la ejecución arbitraria de comandos al procesar archivos que poseen nombres maliciosos. Cuando se utiliza `glob -c`, los nombres de archivo coincidentes se pasan a un intérprete de comandos con la opción `shell: true`, lo que facilita que los metacaracteres de shell en los nombres de archivo desencadenen inyecciones de comandos y logren la ejecución de código arbitrario bajo los privilegios de la cuenta de usuario o de integración continua (CI). Este problema ha sido corregido en las versiones 10.5.0 y 11.1.0.
Por otro lado, `node-forge`, una implementación nativa del protocolo de seguridad de transporte (TLS) en JavaScript, presenta varias vulnerabilidades. Una de ellas, relacionada con un desbordamiento de enteros, afecta a las versiones 1.3.1 y anteriores. Esta vulnerabilidad permite a atacantes remotos y no autenticados crear estructuras ASN.1 que contienen identificadores de objeto (OIDs) con arcos desmesurados. Debido a la truncación bit a bit de 32 bits, estos arcos pueden ser decodificados como OIDs más pequeños y confiables, eludiendo así decisiones de seguridad basadas en OID. Este problema fue solucionado en la versión 1.3.2.
Además, `node-forge` también presenta una vulnerabilidad de recursión incontrolada en las versiones 1.3.1 y anteriores. Esta falla permite que atacantes remotos no autenticados diseñen estructuras ASN.1 profundas que provocan un análisis recursivo sin límites. Esto puede resultar en un Denial-of-Service (DoS) a través del agotamiento de la pila al analizar entradas DER no confiables. Al igual que el desbordamiento de enteros, este problema fue corregido en la versión 1.3.2.
En el ámbito del desarrollo de aplicaciones web, Angular, una plataforma que utiliza TypeScript/JavaScript y otros lenguajes, presenta una fuga de tokens XSRF a través de URLs relativas a protocolos antes de las versiones 19.2.16, 20.3.14 y 21.0.1. Esta vulnerabilidad se manifiesta como una fuga de credenciales por lógica de aplicación, lo que permite la divulgación no autorizada del token XSRF a un dominio controlado por un atacante. Angular cuenta con un mecanismo de protección XSRF que verifica si una URL de solicitud comienza con un protocolo (http:// o https://) para determinar si es de origen cruzado. Sin embargo, si la URL comienza con una URL relativa a un protocolo (//), se maneja incorrectamente como una solicitud de mismo origen, y el token XSRF se añade automáticamente al encabezado X-XSRF-TOKEN. Este fallo ha sido corregido en las versiones 19.2.16, 20.3.14 y 21.0.1. Como medida alternativa, se recomienda evitar el uso de URLs relativas a protocolos en las solicitudes de HttpClient. Todas las URLs de comunicación con el backend deben codificarse como rutas relativas (que comienzan con una sola /) o como URLs absolutas completamente calificadas y de confianza.
Por último, se ha identificado una vulnerabilidad de Cross-Site Scripting (XSS) almacenado en el Compilador de Plantillas de Angular, presente en las versiones anteriores a 21.0.2, 20.3.15 y 19.2.17. Esta vulnerabilidad se origina en la incompletitud del esquema de seguridad interno del compilador, lo que permite a los atacantes eludir la sanitización de seguridad incorporada en Angular. En concreto, el esquema no clasifica ciertos atributos que contienen URLs (por ejemplo, aquellos que podrían incluir URLs javascript:) como que requieren una estricta seguridad de URL, lo que facilita la inyección de scripts maliciosos. Este problema ha sido subsanado en las versiones 21.0.2, 20.3.15 y 19.2.17.
Siemens, como medida de seguridad general, recomienda encarecidamente proteger el acceso a la red de sus dispositivos mediante mecanismos adecuados. Para operar estos dispositivos en un entorno de TI seguro, aconseja configurar el entorno de acuerdo con las directrices operativas de Siemens para la Seguridad Industrial (descargue en: https://www.siemens.com/cert/operational-guidelines-industrial-security) y seguir las recomendaciones de los manuales de producto. Se puede encontrar información adicional sobre la Seguridad Industrial de Siemens en: https://www.siemens.com/industrialsecurity.
Para consultas adicionales sobre vulnerabilidades de seguridad en productos y soluciones de Siemens, se puede contactar con el Siemens ProductCERT: https://www.siemens.com/cert/advisories.
El uso de los Avisos de Seguridad de Siemens se encuentra sujeto a los términos y condiciones que se detallan en el siguiente enlace: https://www.siemens.com/productcert/terms-of-use. Este producto se proporciona bajo la notificación disponible en: https://www.cisa.gov/notification, así como bajo la política de privacidad y uso en https://www.cisa.gov/privacy-policy.
La Agencia de Ciberseguridad y Seguridad de Infraestructura (CISA) recomienda a los usuarios tomar medidas defensivas para minimizar el riesgo de explotación de esta vulnerabilidad específica. Es crucial reducir la exposición de la red para todos los dispositivos y/o sistemas de control, garantizando que no sean accesibles desde Internet. Para lograrlo, se recomienda ubicar las redes de sistemas de control y los dispositivos remotos detrás de cortafuegos, aislándolos de las redes empresariales convencionales.
Cuando sea necesario el acceso remoto, se deben emplear métodos más seguros, como las Redes Privadas Virtuales (VPN), aunque es importante reconocer que las VPN pueden presentar vulnerabilidades y, por tanto, deben actualizarse a la versión más reciente disponible. Además, es fundamental entender que la seguridad de una VPN depende en gran medida de la seguridad de los dispositivos conectados a ella.
CISA recuerda a las organizaciones la importancia de realizar un análisis de impacto adecuado y una evaluación de riesgos antes de implementar medidas defensivas. Asimismo, CISA ofrece una sección dedicada a las prácticas recomendadas para la seguridad de sistemas de control en su página web de ICS, donde se pueden encontrar diversos productos que detallan las mejores prácticas en defensa cibernética. Uno de ellos es el documento titulado "Mejorando la Ciberseguridad de los Sistemas de Control Industrial mediante Estrategias de Defensa en Profundidad".
CISA alienta a las organizaciones a implementar las estrategias recomendadas de ciberseguridad para una defensa proactiva de los activos de Sistemas de Control Industrial (ICS). Además, se proporciona orientación adicional sobre mitigación y prácticas recomendadas que están disponibles públicamente en la página de ICS de cisa.gov, en el documento técnico ICS-TIP-12-146-01B, que aborda estrategias de detección y mitigación de intrusiones cibernéticas dirigidas.
Las organizaciones que observen actividades maliciosas sospechosas deben seguir los procedimientos internos establecidos y reportar sus hallazgos a CISA para que se realice un seguimiento y correlación con otros incidentes.
Este Aviso de Seguridad de la Industria (ICSA) es una reproducción textual del Aviso de Seguridad SSA-485750 de Siemens ProductCERT, obtenido directamente de la conversión del marco de avisos de seguridad común (CSAF) del proveedor. Se publica en el sitio web de CISA con el objetivo de aumentar su visibilidad y se proporciona "tal cual" únicamente con fines informativos. CISA no se responsabiliza de la precisión editorial o técnica de los avisos republicados y no ofrece garantías de ningún tipo respecto a la información contenida en este aviso. Además, CISA no respalda ningún producto o servicio comercial. Para cualquier consulta relacionada con este aviso, se debe contactar directamente a Siemens ProductCERT.