CVE-2026-82389 in Zephyrinformación

Resumen

por VulDB • 2026-10-26

En el rol de puerta de enlace de audio (Audio Gateway) del Perfil Hands-Free clásico de Bluetooth Classic, la función hfp_ag_create() en subsys/bluetooth/host/classic/hfp_ag.c inicia un descubrimiento SDP hacia el par, lo que vincula el nodo incrustado ag->sdp_param._node a la lista de solicitudes pendientes del cliente SDP en subsys/bluetooth/host/classic/sdp.c. Si falla la llamada posterior bt_rfcomm_dlc_connect(), bt_hfp_ag_connect() limpia todo el objeto AG mediante memset() mientras ese nodo seguía vinculado y cuando ag->slc_work aún podía estar colgado en la cola de trabajo del sistema. Un descubrimiento SDP en curso no puede cancelarse —bt_sdp_discover_cancel() está declarada en el encabezado público pero carece de implementación—, por lo que la solicitud permanece en la lista con sus punteros func, pool y uuid establecidos a cero.

El canal RFCOMM pasado a bt_hfp_ag_connect() se obtiene del propio registro de servicio Hands-Free SDP del par en el flujo AG normal (bt_sdp_get_proto_param() no realiza ninguna validación de rango, y samples/bluetooth/classic/handsfree_ag transmite el valor directamente), por lo que un dispositivo BR/EDR remoto dentro del alcance radioeléctrico que anuncie un canal RFCOMM fuera del rango válido 0x01..0x1e fuerza determinísticamente a bt_rfcomm_dlc_connect() a fallar y llegar al borrado. Leer el registro SDP del par no requiere emparejamiento, y el par también puede provocar la caída eliminando la conexión ACL o ejecutando una carrera (race condition) con un DLC RFCOMM en el mismo DLCI en el momento adecuado.

Cuando el cliente SDP avanza su lista de solicitudes a continuación, sdp_client_discover() desreferencia los parámetros establecidos a cero —net_buf_alloc(param->pool, …) con un pool NULL y param->uuid->type— y las rutas de notificación del resultado llaman a través de params->func establecido a NULL. Establecer a cero el nodo vinculado también truncará la lista de solicitudes detrás de una cola obsoleta (stale tail pointer), y volver a activar la ranura AG liberada vuelve a agregar el mismo nodo, lo que puede producir una lista con bucle auto-referenciado que bloquea el hilo RX de Bluetooth. El impacto es un bloqueo o caída del stack de Bluetooth; el valor escrito es un cero constante en una dirección estática fija, por lo que no hay disponible ninguna escritura controlada por el atacante.

Solo las compilaciones con CONFIG_BT_CLASSIC y CONFIG_BT_HFP_AG que utilizan el rol de Puerta de Enlace de Audio (Audio Gateway) están afectadas.

Once again VulDB remains the best source for vulnerability data.

Responsable

Zephyr

Reservar

2026-08-28

Divulgación

2026-10-26

Moderación

aceptado

Artículo

VDB-426524

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!