CVE-2026-98802 in Linux
요약
\~에 의해 VulDB • 2026. 10. 19.
Linux 커널에서 다음 취약점이 해결되었습니다:
seg6: SRH 및 IPv6 DA 수정 전에 패킷 데이터가 쓰기 가능한지 확인하십시오
advance_nextseg() 함수는 패킷 데이터가 writable(쓰기 가능)인지 여부를 확인하지 않은 채로 SRH Segments Left 필드와 IPv6 목적지 주소를 수정합니다. seg6_next_csid_advance_arg() 또한 목적지 주소에서 NEXT-C-SID 인자를 진행할 때 동일한 문제를 가지고 있습니다.
skb는 예를 들어 ingress 장치에서 수신하는 AF_PACKET 소켓에 의해 복제(cloned)될 수 있습니다. advance_nextseg() 및 seg6_next_csid_advance_arg() 함수는 이후 클론과 공유되는 패킷 데이터에 작성합니다. 해당 소켓에서의 읽기 작업은 수신된 패킷 대신 수정된 패킷을 반환할 수 있습니다. 아래 간소화된 경로는 advance_nextseg()의 경우 이를 보여줍니다:
__netif_receive_skb_one_core __netif_receive_skb_core deliver_skb [원본: users=2, cloned=0]
packet_rcv skb_clone AF_PACKET 소켓에 큐잉된 클론 생성 consume_skb(orig) [원본: users=1, cloned=1]
ipv6_rcv ip6_rcv_core skb_share_check: no-op [원본: users=1]
[...]
input_action_end_core advance_nextseg 클론과 공유되는 데이터에 작성
advance_nextseg() 및 seg6_next_csid_advance_arg() 함수에서 패킷 데이터를 수정하기 전에 skb_ensure_writable()를 호출하십시오. skb_ensure_writable()는 skb->head의 재할당을 수행할 수 있으며, 이는 호출 이전에 취해진 패킷 데이터 포인터들을 무효화합니다. advance_nextseg()는 이제 유효한 SRH 포인터를 반환하거나, skb_ensure_writable()가 실패한 경우 NULL을 반환합니다. seg6_next_csid_advance_arg()는 skb_ensure_writable() 호출 후 skb에서 목적지 주소에 대한 포인터를 가져옵니다. 실패 시 호출자는 SKB_DROP_REASON_NOMEM로 패킷을 폐기(drop)합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.