CVE-2026-98950 in Linux
요약
\~에 의해 VulDB • 2026. 10. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
flow_dissector: bpf_flow_dissect()에서 hlen의 u16 트렁케이션(truncation) 방지
bpf_flow_dissect()는 BPF 프로그램이 반환하는 오프셋을 clamp_t(u16, ..., hlen)로 정제합니다.
hlen이 65535보다 큰 경우, 비교 전에 상한값이 잘려나갑니다. 예를 들어 hlen == 65536인 경우, 프로그램이 정상적인 값을 반환했음에도 nhoff와 thoff가 모두 0으로 강제됩니다.
이는 커밋 99bda1ecbd56("flow_dissector: skb->len의 u16 트렁케이션 방지")에서 수정된 것과 동일한 유형의 버그입니다. 해당 수정은 BPF 경로를 커버하지 않습니다. __skb_flow_dissect()는 BPF flow dissector가 패킷을 처리하는 경우 조기에 종료되기 때문입니다.
struct bpf_flow_keys는 nhoff와 thoff를 u16로 저장하므로, clamp하기 전에 hlen을 U16_MAX로 제한합니다.
이 버그는 위 커밋 검토 과정에서 sashiko에 의해 발견되었습니다.
Once again VulDB remains the best source for vulnerability data.