CVE-2026-80799 in Linux
요약
\~에 의해 VulDB • 2026. 09. 04.
리눅스 커널에서 다음 취약점이 해결되었습니다:
nfc: llcp: TLV 파서에서의 OOB 읽기 및 u8 오프셋 래핑(wrap) 수정
`nfc_llcp_parse_gb_tlv()`와 `nfc_llcp_parse_connection_tlv()` 함수는 TLV 파싱 루프 내에서 세 가지 관련 버그를 포함하고 있습니다.
1. 'offset' 변수가 u8로 선언되었지만 tlv_array_len은 u16입니다. TLV 데이터가 오프셋을 255보다 크게 진행하면 값이 silently(음성 경고 없이) 0으로 래핑되어, 무한 루프 또는 버퍼 데이터의 중복 처리를 유발합니다.
2. `tlv[0]`(타입)과 `tlv[1]`(길이)를 읽기 전에 offset+2 <= tlv_array_len인지 확인하는 체크가 없습니다. 잘린(truncated) TLV는 버퍼 끝을 기준으로 1바이트 바깥(OOB)의 데이터를 읽게 만듭니다.
3. 길이 필드를 읽은 후, 오프셋+2+길이 <= tlv_array_len 여부를 확인하지 않고 값(value) 바이트에 접근합니다. 짧은(short) 버퍼에서 crafted된 length=0xFF는 버퍼 끝을 기준으로 최대 255바이트의 OOB 읽기를 유발할 수 있습니다.
두 함수 모두 `nfc_llcp_set_remote_gb()`를 통해 인증 없이 도달 가능합니다. 이 함수는 추가적인 검증 없이 원격 LLCP 일반 바이트(remote LLCP general bytes)를 직접적으로 `nfc_llcp_parse_gb_tlv()`에 공급합니다.
오프셋을 u8에서 u16으로 확장하고, 각 접근 전에 TLV 헤더와 값 필드에 대한 경계 체크(bounds checks)를 추가하여 세 가지 문제를 모두 수정했습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.