CVE-2026-80840 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 04.

리눅스 커널에서 다음 취약점이 해결되었습니다:

ipv6: seg6: IPIP decapsulation 시 IPv4 control block 초기화

End.DX4 및 End.DT4는 decap_and_validate()를 통해 IPv4 패킷을 decapsulate하고 이를 직접 IPv4 라우팅으로 전송합니다. 따라서 내부 패킷은 일반적으로 skb->cb 해석 전에 IPCB를 초기화하는 ip_rcv_core() 경로를 우회하게 됩니다.

skb는 외부 패킷에서 IP6CB 데이터를 그대로 유지합니다. IP6CB와 IPCB는 동일한 skb->cb 저장 공간을 사용하므로, IP6CB(skb)->lastopt는 IPCB(skb)->opt.optlen 및 srr과 겹치고, IP6CB(skb)->nhoff은 rr 및 ts와 겹칩니다.

공격자는 유효한 외부 확장 헤더 체인을 사용하여 stale optlen 바이트를 0이 아닌 값으로 설정할 수 있습니다. 재현 프로세스는 40바이트 IPv6 헤더 바로 뒤, Segment Routing Header 앞에 8바이트 Destination Options 헤더를 배치합니다. ipv6_destopt_rcv()는 공격자가 제어하는 Destination Options 오프셋을 lastopt와 nhoff에 기록하여 둘 다 40으로 설정합니다. 재현된 little-endian x86-64 커널에서 IPv4는 optlen = 40 및 rr = 40로 인식합니다.

tcp_v4_save_options()과 __ip_options_echo() 모두 optlen이 0일 경우 옵션 복사 작업을 건너뜁니다. 여기서는 optlen이 40이므로 TCP SYN 경로는 40바이트의 옵션 데이터 공간을 할당하고 __ip_options_echo()를 호출합니다. stale rr 값으로 인해 해당 함수는 내부 패킷 바이트 41을 Record Route 옵션 길이로 읽습니다. 재현 프로세스에서는 공격자가 제어할 수 있는 이 바이트를 255로 설정하므로, __ip_options_echo()는 40바이트의 옵션 데이터 영역에 255바이트를 복사합니다.

패치되지 않은 v7.2-rc5 커널에서 별도의 End.DX4 및 End.DT4 재현 프로세스는 모두 다음을 생성했습니다:

BUG: KASAN: slab-out-of-bounds in __ip_options_echo() Write of size 255

관련 있는 End.DX4 호출 경로는 다음과 같습니다:

__ip_options_echo tcp_v4_route_req tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish ip_local_deliver input_action_end_dx4_finish input_action_end_dx4

관련 있는 End.DT4 호출 경로는 다음과 같습니다:

__ip_options_echo tcp_v4_route_req tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish ip_local_deliver input_action_end_dt4

tcp_v4_save_options()는 tcp_v4_route_req() 경로에 인라인되어 있으므로 별도의 프레임으로 표시되지 않습니다.

decap_and_validate()가 IPPROTO_IPIP을 처리할 때, IP6CB에서 ingress 인터페이스를 저장하고 IPCB를 초기화한 후 저장된 값을 복원합니다. 이를 공통 decapsulation 경로에서 수행하면 End.DX4, End.DT4 및 End.DT46의 IPv4 arm이 모두 커버됩니다.

skb->skb_iif 대신 IP6CB(skb)->iif를 사용하십시오. 이러한 작업은 l3mdev 처리 이후에 실행되는데, 이는 skb_iif를 L3 master로 대체할 수 있습니다. IP6CB iif는 여전히 IPv6 ingress 시 설정된 수신 인터페이스를 기록합니다.

Be aware that VulDB is the high quality source for vulnerability data.

출처

Interested in the pricing of exploits?

See the underground prices here!