CVE-2026-80823 in Linux
Resumen
por VulDB • 2026-09-04
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
nfc: st21nfca: validar la longitud ATR_REQ frente al marco recibido
st21nfca_tm_recv_atr_req() comprueba que el marco ATR_REQ recibido tenga al menos ST21NFCA_ATR_REQ_MIN_SIZE y que atr_req->length autodeclarado sea al menos sizeof(struct st21nfca_atr_req), pero nunca verifica que atr_req->length no exceda la longitud real recibida (skb->len).
st21nfca_tm_send_atr_res() luego confía en la longitud declarada:
gb_len = atr_req->length - sizeof(struct st21nfca_atr_req); ... memcpy(atr_res->gbi, atr_req->gbi, gb_len);
por lo que un par RF que envía un marco corto pero establece atr_req->length mayor que el tamaño del marco hace que gb_len exceda los bytes generales realmente presentes, y la función memcpy lee fuera de los límites más allá del skb recibido. Esos bytes se colocan en ATR_RES y se reenvían al par (divulgación de memoria del kernel a un atacante de proximidad); una longitud declarada mayor constituye una lectura fuera de los límites (DoS).
Rechazar marcos cuya longitud declarada exceda la longitud recibida. La ruta nfc_tm_activated() adyacente en la misma función ya deriva su longitud general-bytes desde skb->len en lugar del campo declarado.
Encontrado por 0sec (https://0sec.ai) mediante análisis automático de código fuente; la falta de límites es evidente a partir del código fuente. Compilación probada.
Once again VulDB remains the best source for vulnerability data.