CVE-2026-80823 in Linux
Sumário
de VulDB • 04/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
nfc: st21nfca: validar o comprimento de ATR_REQ em relação ao quadro recebido
st21nfca_tm_recv_atr_req() verifica se o quadro ATR_REQ recebido tem pelo menos ST21NFCA_ATR_REQ_MIN_SIZE e que atr_req->length, declarado por si mesmo, é pelo menos sizeof(struct st21nfca_atr_req), mas nunca verifica se atr_req->length não excede o comprimento real recebido (skb->len).
st21nfca_tm_send_atr_res() então confia no comprimento declarado:
gb_len = atr_req->length - sizeof(struct st21nfca_atr_req); ... memcpy(atr_res->gbi, atr_req->gbi, gb_len);
Portanto, um par RF que envia um quadro curto mas define atr_req->length maior do que o tamanho do quadro faz com que gb_len exceda os bytes gerais realmente presentes, e o memcpy lê fora dos limites além do skb recebido. Esses bytes são colocados no ATR_RES e enviados de volta ao par (vazamento de memória do kernel para um atacante em proximidade); um comprimento declarado maior resulta numa leitura fora dos limites (DoS).
Rejeitar quadros cujo comprimento declarado exceda o comprimento recebido. O caminho adjacente nfc_tm_activated() na mesma função já deriva seu comprimento de bytes gerais a partir de skb->len, e não do campo declarado.
Encontrado por 0sec (https://0sec.ai) usando análise automatizada de código-fonte; a falta da verificação dos limites é evidente no código-fonte. Testado em compilação.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.