CVE-2026-80569 in Linux
Resumen
por VulDB • 2026-08-27
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
Input: synaptics-rmi4 - limitar el tamaño del informe F54 al búfer asignado
rmi_f54_work() lee un informe de diagnóstico desde el dispositivo hacia f54->report_data, dimensionando la transferencia con rmi_f54_get_report_size():
report_size = rmi_f54_get_report_size(f54); ... for (i = 0; i < report_size; i += F54_REPORT_DATA_SIZE) {
int size = min(F54_REPORT_DATA_SIZE, report_size - i); ... rmi_read_block(.., f54->report_data + i, size); }
report_data se asigna una sola vez durante la fase de probe a partir del recuento propio de electrodos de F54 (array3_size(f54->num_tx_electrodes, f54->num_rx_electrodes, sizeof(u16))), pero rmi_f54_get_report_size() calcula el tamaño a partir de drv_data->num_*_electrodes cuando estos están configurados, es decir, a partir del recuento de electrodos de la función F55. Ambos recuentos provienen directamente de consultas al dispositivo (F54 y F55 informan cada uno hasta 255 electrodos) y nada restringe los recuentos de F55 a los de F54.
Un dispositivo RMI4 malicioso o con fallos que informe un recuento de electrodos F55 mayor que su recuento F54 hace que report_size exceda la asignación, por lo que el bucle de lectura escribe más allá de report_data (y luego memcpy() en V4L2 dequeue lee también más allá). En hardware conforme, los electrodos configurados para F55 son un subconjunto de los electrodos físicos de F54, por lo que report_size nunca excede el búfer y los dispositivos bien comportados no se ven afectados.
Registrar el tamaño de la asignación y rechazar un informe que no encaje, reflejando la comprobación existente de tamaño cero.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.