Saltar al contenido
DUPIN
ALERTAS · EN VIVO
Contacto

VULNERABILIDADDetectada 11 OCT · 16:24

CVE-2026-18418 Lectura fuera de límites al registrar el nombre de canal de una trama rechazada en el proxy agent de zbus

El backend IPC del proxy agent de zbus registra con %s el channel_name[] de una trama rechazada, un array de tamaño fijo sin garantía de terminación en NUL. Cualquier dominio par que envíe una trama con message_size fuera de rango o channel_name[] inválido por el endpoint ipc_service puede provocar la lectura fuera de límites.

3.4BAJA

CVSS 3.1

  • Probabilidad de explotación0,1 %
  • Explotada activamenteNo confirmada
  • Exploit públicoNo conocido

Afectados

  • zephyrproject zephyr

    desde 4.4.0 hasta antes de 4.4.2

Qué hacer

  1. Verificá si usás zephyr y en qué versión.
  2. Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
  3. Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.

Calculadora CVSS

CVSS 3.1 · 3.4 BAJA

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

  • Vector de ataqueLocal
  • Complejidad del ataqueBaja
  • Privilegios requeridosAltos
  • Interacción del usuarioNinguna
  • AlcanceSin cambio
  • ConfidencialidadBaja
  • IntegridadNinguna
  • DisponibilidadBaja

Descripción original

The zbus proxy agent IPC backend in subsys/zbus/proxy_agent/zbus_proxy_agent_ipc.c logged the channel name of a rejected inter-domain frame with a plain %s conversion. The frame type struct zbus_proxy_msg carries a fixed-size channel_name[] array as its last member, and nothing in the transport guarantees the array is NUL-terminated. The only code that verifies termination is zbus_proxy_agent_receive_cb() in subsys/zbus/proxy_agent/zbus_proxy_agent.c, which rejects the frame in precisely those cases — so the warning printed a non-terminated buffer exactly on the error paths where the name had been found invalid (or, for an invalid message_size, had not been inspected at all). Any peer domain able to place a frame of sizeof(struct zbus_proxy_msg) bytes on the bound ipc_service endpoint can trigger it, by sending a frame with an out-of-range message_size or with channel_name[] containing no NUL byte. Reaching the code requires CONFIG_ZBUS_PROXY_AGENT_IPC and logging built at warning level or above (the default), and requires control over the firmware of the peer domain — typically a second core on the same SoC. The resulting strlen() inside the log packager walks past the end of the frame object until it finds a zero byte. With the icmsg backend the frame lives in a stack buffer of the IPC work-queue thread, so bytes of that thread's stack are rendered into the log message; with the rpmsg backends the scan continues through the shared vring memory. Impact is bounded to disclosure of a small amount of adjacent memory into the receiving domain's log sink, plus a possible fatal fault if the scan leaves a mapped region; the log packager's own -ENOSPC bound prevents the overrun from becoming a write. The fix bounds the conversion with %.*s and MIN(msg->channel_name_len, sizeof(msg->channel_name)).

Referencias (2)

Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.