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

Múltiples vulnerabilidades en productos Circutor

Fecha de publicación 28/10/2025
Identificador
INCIBE-2025-0595
Importancia
5 - Crítica
Recursos Afectados

Circutor SGE-PLC1000/SGE-PLC50 v9.0.2.

Descripción

INCIBE ha coordinado la publicación de 12 vulnerabilidades, 2 de severidad crítica y 10 altas, que afectan a los dispositivos SGE-PLC1000/SGE-PLC50 de Circutor, un concentrador modular que forma parte de un sistema de telegestión de red eléctrica con protocolo PRIME, y que han sido descubiertas por Gabriel Gonzalez y Sergio Ruiz.

A estas vulnerabilidades se les han asignado los siguientes códigos, puntuación base CVSS v4.0, vector del CVSS y el tipo de vulnerabilidad CWE de cada vulnerabilidad:

  • CVE-2025-11778: CVSS v4.0: 10.0 | CVSS AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H | CWE-122
  • CVE-2025-11779: CVSS v4.0: 9.4 | CVSS AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H | CWE-121
  • CVE-2025-11780: CVSS v4.0: 8.7 | CVSS AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N | CWE-120
  • CVE-2025-11781: CVSS v4.0: 8.6 | CVSS AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N | CWE-321
  • CVE-2025-11782 a CVE-2025-11786: CVSS v4.0: 8.5 | CVSS AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:H/SC:H/SI:L/SA:H | CWE-121
  • CVE-2025-11787: CVSS v4.0: 8.5 | CVSS AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N | CWE-78
  • CVE-2025-11788: CVSS v4.0: 8.5 | CVSS AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:H/SC:H/SI:L/SA:H | CWE-122
  • CVE-2025-11789: CVSS v4.0: 7.1 | CVSS AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N | CWE-125
Solución

Las unidades SGE-PLC100 y SGE-PLC50 se dejaron de fabricar en 2015. 

El producto que las sustituyó fue el Compact DC , que a su vez quedó obsoleto en  noviembre de 2024. El producto equivalente actual es el GEDE EDC.

La versión más antigua instalada actualmente es la 1.0.14, ya que fue la primera compatible con el sistema tarifario existente, mientras que la última versión de estas unidades es la 1.2.21.

Circutor recomienda no prolongar la vida útil de los concentradores SGE-PLC100 y SGE-PLC50 sin mantenerlos actualizados. Tanto para las unidades Compact DC (que sustituyeron a la serie SGE) como para el actual GEDE EDC, se recomienda actualizar a la última versión disponible (2.0.4) o, como mínimo, a la 2.0.0. 

Este enfoque no solo mitiga las vulnerabilidades identificadas, sino que también proporciona nuevas funcionalidades derivadas de la evolución de DLMS, el estándar PRIME, los protocolos STG y la API REST.

Detalle
  • CVE-2025-11778: desbordamiento del búfer basado en pila en Circutor SGE-PLC1000/SGE-PLC50 v0.9.2. Esta vulnerabilidad permite a un atacante explotar la corrupción de memoria de forma remota a través de la función 'read_packet()' de la implementación TACACSPLUS.
  • CVE-2025-11779: vulnerabilidad de desbordamiento del búfer basado en pila en CircutorSGE-PLC1000/SGE-PLC50 v9.0.2. La función 'SetLan' se invoca cuando se aplica una nueva configuración. Esta nueva función de configuración se activa mediante una solicitud web de gestión, que puede invocar un usuario al realizar cambios en la aplicación web 'index.cgi'. Los parámetros no se están sanitizando, por lo que puede dar lugar a una inyección de comandos.
  • CVE-2025-11780: vulnerabilidad de desbordamiento de búfer basada en pila en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. En la función 'showMeterReport()' existe una entrada de usuario sin límites que se copia a un búfer de tamaño fijo a través de 'sprintf()'. La función 'GetParameter(meter)' recupera la entrada del usuario que se incorpora directamente a un búfer sin validación de tamaño. Un atacante puede proporcionar una entrada de tamaño excesivo para el parámetro 'meter'.
  • CVE-2025-11781: uso de claves criptográficas codificadas en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. El firmware afectado contiene una clave de autenticación estática hardcodeada. Un atacante con acceso local al dispositivo puede extraer esta clave (por ejemplo, mediante el análisis de la imagen del firmware o el volcado de memoria) y crear paquetes de actualización de firmware válidos. Esto omite todos los controles de acceso previstos y otorga privilegios administrativos completos.
  • CVE-2025-11782: vulnerabilidad de desbordamiento del búfer basado en pila en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. La función 'ShowDownload()' utiliza 'sprintf()' para dar formato a una cadena que incluye la entrada controlada por el usuario de 'GetParameter(meter)' en el búfer de tamaño fijo 'acStack_4c' (64 bytes) sin comprobar la longitud. Un atacante puede proporcionar un valor excesivamente largo para el parámetro 'meter' que supere el tamaño del búfer de 64 bytes.
  • CVE-2025-11783: vulnerabilidad de desbordamiento del búfer basado en pila en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. La vulnerabilidad se encuentra en la función 'AddEvent()' al copiar la entrada del nombre de usuario, controlada por el usuario, a un búfer de tamaño fijo (48 bytes) sin comprobación de límites. Puede provocar una corrupción de la memoria que dé lugar a una posible ejecución remota de código.
  • CVE-2025-11784: vulnerabilidad de desbordamiento del búfer basado en pila en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. En la función 'ShowMeterDatabase()' existe una entrada de usuario sin límites que se copia a un búfer de tamaño fijo a través de 'sprintf()'. La función 'GetParameter(meter)' recupera la entrada del usuario que se incorpora directamente a un búfer sin validación de tamaño. Un atacante puede proporcionar una entrada de tamaño excesivo para el parámetro 'meter'.
  • CVE-2025-11785: vulnerabilidad de desbordamiento de búfer basado en pila en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. En la función 'ShowMeterPasswords()' existe una entrada de usuario sin límites que se copia a un búfer de tamaño fijo a través de 'sprintf()'. La función 'GetParameter(meter)' recupera la entrada del usuario que se incorpora directamente a un búfer sin validación de tamaño. Un atacante puede proporcionar una entrada de tamaño excesivo para el parámetro 'meter'.
  • CVE-2025-11786: vulnerabilidad de desbordamiento del búfer basado en pila en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. En la función 'SetUserPassword()', el parámetro 'newPassword' se incrusta directamente en una cadena de comando shell mediante 'sprintf()' sin ninguna sanitización o validación, y luego se ejecuta utilizando 'system()'. Esto permite a un atacante inyectar comandos shell arbitrarios que se ejecutarán con los mismos privilegios que la aplicación.
  • CVE-2025-11787: vulnerabilidad de inyección de comandos del sistema operativo en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2 a través de las funciones 'GetDNS()', 'CheckPing()' y 'TraceRoute()'.
  • CVE-2025-11788: vulnerabilidad de desbordamiento de búfer basada en montón en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. En la función 'ShowSupervisorParameters()' existe una entrada de usuario sin límites que se copia a un búfer de tamaño fijo a través de 'sprintf()'. La función 'GetParameter(meter)' recupera la entrada del usuario que se incorpora directamente a un búfer sin validación de tamaño. Un atacante puede proporcionar una entrada de tamaño excesivo para el parámetro 'meter'.
  • CVE-2025-11789: vulnerabilidad de lectura fuera de límites en Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. La función 'DownloadFile' convierte un parámetro en un entero utilizando 'atoi()' y, a continuación, lo utiliza como índice en la matriz 'FilesDownload' con '(&FilesDownload)[iVar2]'. Si el parámetro es demasiado grande, accederá a la memoria más allá de los límites.
CVE
Explotación
No
Listado de referencias