Empresa
¿Quiénes somos? Visión y Valores
Herramientas
Email Checker Vigía DNS SSL Checker Password Strength HTTP Headers
Alertas
Todas las alertas Vulnerabilidades Incidentes Solo críticas En CISA KEV
Editorial
Análisis técnico ¿Cuál es mi IP?
Blog
Blog 2MCI ISO 27001 Amenazas LATAM Recursos Gratuitos eBook Gratuito Newsletter Podcast / YouTube
Empresa
Servicios Contacto Suscribirse al Newsletter
🆕 Nuevo en 2MCI
✨ Crear cuenta gratis 🛠️ Ver herramientas sin registro
Ya tengo cuenta
🔒 Iniciar sesión
Equipo
🏠 Portal interno 2MCI
Alto CVE-2026-10848 Multiple Vendors

Vulnerabilidad alta en cliente OCPP 1.6: desbordamiento de buffer en parse_rpc_msg()

Vulnerabilidad · Publicado 02/08/2026 · Actualizado 03/08/2026

7.0
CVSS 3.x
04 Medio7 Alto9 Crítico10
Severidad: Alto
Resumen ejecutivo

Se detectó una falla de seguridad en el procesamiento de marcos WAMP RPC dentro del cliente OCPP 1.6 (subsys/net/lib/ocpp). La función extract_string_field() utiliza strncpy() sin garantizar NUL-terminación, permitiendo lectura de memoria adyacente mediante campos uid y action malformados. Esto afecta sistemas de carga de vehículos eléctricos y controladores IoT en infraestructura de movilidad en Latinoamérica.

Análisis asistido por IA, contexto LATAM revisado por el equipo 2MCI.

Descripción técnica

Descripción técnica

The OCPP 1.6 client in subsys/net/lib/ocpp parsed inbound WAMP RPC frames in parse_rpc_msg() (subsys/net/lib/ocpp/ocpp_j.c) using a hand-rolled helper, extract_string_field(), that copied the message's uid and action fields with strncpy(out_buf, token + 1, outlen - 1) and then scanned the result with strchr(out_buf, '"'). Because strncpy does not NUL-terminate the destination when the source is at least outlen - 1 (127) bytes long, the subsequent strchr reads past the 128-byte destination buffer into adjacent stack memory; if a " byte is found beyond the buffer, a one-byte out-of-bounds NUL write also occurs. A related defect in extract_payload() runs strchr/strrchr over the receive buffer, which may not be NUL-terminated when a maximal-length frame fills it. The parsed bytes come directly from the OCPP central-system server over a websocket: the reader thread fills recv_buf via websocket_recv_msg() and calls parse_rpc_msg() on each inbound DATA frame (subsys/net/lib/ocpp/ocpp.c). A malicious or compromised central server, or an on-path attacker (OCPP is commonly deployed over plain ws://), can send an RPC frame whose uid or action field is 127+ bytes with no closing quote, triggering the out-of-bounds access. The primary impact is a remotely triggerable denial of service: the unbounded scan can fault on an unmapped page, and the stray NUL write can corrupt adjacent stack state. The over-read data is not reflected to the peer, so disclosure is limited. The feature is EXPERIMENTAL and must be explicitly enabled (CONFIG_OCPP). The fix replaces the manual parser with the bounds-respecting json_mixed_arr_parse() and copies the extracted uid with an explicitly NUL-terminated buffer, eliminating both over-reads.

Puntuación CVSS

Score: 7/10 — Severidad: HIGH — Estado NIST: Received

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H

Debilidades (CWE)

CWE-125, CWE-787

Fuente oficial

Publicado en NIST NVD.

¿Qué hacer?
  • Identificar equipos con cliente OCPP 1.6 en operación (puntos de carga, gateways IoT)
  • Contactar fabricantes para disponibilidad de parches
  • Implementar validación de entrada en marcos WAMP antes de parseo
  • Aislar sistemas OCPP de redes públicas mientras se aplican correcciones
  • Monitorear logs de parse_rpc_msg() para detectar explotación
Esta alerta fue generada automáticamente a partir del NVD del NIST.
← Volver a todas las alertas