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

Vulnerabilidad en las funciones sprintf() y strcpy() en la funcionalidad "I/O-Check" del servicio iocheckd de WAGO PFC 200 (CVE-2019-5186)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-120 Copia de búfer sin comprobación del tamaño de entrada (Desbordamiento de búfer clásico)
Fecha de publicación:
23/03/2020
Última modificación:
21/07/2021

Descripción

Se presenta una vulnerabilidad de desbordamiento de búfer de la pila explotable en la funcionalidad "I/O-Check" del servicio iocheckd de WAGO PFC 200. Un atacante puede enviar un paquete especialmente diseñado para activar el análisis de este archivo caché. En 0x1eb9c, el nombre del elemento de interfaz extraído del archivo xml es usado como argumento para /etc/config-tools/config_interfaces interface=(contents of interface element) usando la función sprintf(). El búfer de destino sp+0x40 es desbordado con la llamada a la función sprintf() para cualquier valor de la interfaz que sea mayor de 512-len("/etc/config-tools/config_interfaces interface=") en longitud. Más tarde, en 0x1ea08 la función strcpy() es usada para copiar el contenido del búfer de la pila que se desbordó sp+0x40 en sp+0x440. El búfer sp+0x440 está inmediatamente adyacente a sp+0x40 sobre la pila. Por lo tanto, no presenta terminación NULL en el búfer sp+0x40 ya que se desbordó en sp+0x440. La función strcpy() resultará en un acceso no válido a la memoria. Un valor de longitud 0x3c4 de la interfaz causará que el servicio se bloquee.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:wago:pfc200_firmware:03.02.02\(14\):*:*:*:*:*:*:*
cpe:2.3:h:wago:pfc200:-:*:*:*:*:*:*:*


Referencias a soluciones, herramientas e información