CVE-2026-16515 in Zephyr정보

요약

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

subsys/net/ip/icmpv6.c의 net_icmpv6_send_error() 함수는 RFC 4443 섹션 2.4에 명시된 세 가지 억제 규칙 중 하나(ICMPv6 오류 메시지에 대한 응답으로 ICMPv6 오류 메시지를 보내지 않음)만 구현했습니다. 이 함수는 트리거링 패킷의 소스 주소가 단일 노드를 식별하는지(rule e.6), 또는 패킷이 멀티캐스트 목적지로 전송되었는지(rule e.3, Packet Too Big 및 Parameter Problem Code 2를 제외한 유일한 예외 사항) 확인하지 않았습니다. 다섯 가지 호출 지점 중 subsys/net/ip/connection.c의 port-unreachable 경로만 자체적인 유사한 보호 장치를 갖추고 있었으며, subsys/net/ip/ipv6.c와 subsys/net/ip/ipv6_fragment.c의 extension-header, unknown-next-header 및 fragmentation 경로는 그러한 보호가 전혀 없었습니다.

인증되지 않은 공격자가 동일한 링크에 접근할 수 있는 경우 이 취약점을 두 가지 방식으로 악용할 수 있습니다. 첫째, unrecognized next-header 값을 포함하고 소스 주소가 선택된 피해자로 스푸핑(link-local all-nodes 그룹 ff02::1으로)된 단일 IPv6 패킷을 링크로 전송하면, 링크상의 모든 Zephyr 노드가 해당 피해자에게 ICMPv6 Parameter Problem 메시지를 발송합니다. 이는 노드 수와 동일한 증폭률을 가진 리플렉터(reflector) 역할을 합니다. 둘째, 소스 주소가 멀티캐스트 주소인 유니케스트 패킷을 전송하면 노드는 자신의 ICMPv6 오류를 해당 멀티캐스트 주소로 전송하게 되며, 이로 인해 하나의 유니케스트 패킷이 링크 전체를 범람시키는(flooded) 멀티캐스트 프레임으로 변모합니다. ipv6_input() 함수는 ff02::1로 향하는 패킷을 무조건 수락하며, 멀티캐스트 소스 주소를 거부하는 확인 절차가 없으므로 특별한 구성 설정이 필요하지 않습니다.

영향은 공유 링크 및 리플렉션 피해자의 가용성 저하와 함께, 공격자가 응답 노드들 뒤에 자신의 주소를 숨길 수 있는 능력을 포함합니다. 이 효과는 802.15.4/Thread와 같은 제약된 메시 링크에서 hop-by-hop으로 링크 로컬 멀티캐스트가 범람됨에 따라 증폭됩니다. 메모리 안전성(memory-safety) 문제는 없습니다: 오류 패킷 자체는 잘 형성되어 있으며, 단지 프로토콜이 금지하는 경우에 발행될 뿐입니다.

해결책은 net_icmpv6_send_error() 함수의 단일 병목 지점에서 NET_ICMPV6_PACKET_TOO_BIG 및 Parameter Problem Code 2에 대한 RFC mandated 예외 사항을 보존하면서 두 가지 억제 확인(checks)을 추가합니다. 참고로, subsys/net/ip/icmpv4.c의 IPv4 대응 기능인 net_icmpv4_send_error() 함수는 여전히 브로드캐스트 목적지에 대해서만 확인하며, 멀티캐스트 목적지 및 비고유(non-unique) 소스에 대해 유사한 격차(gap)를 유지하고 있습니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

Zephyr

예약하다

2026. 07. 21.

모더레이션

수락

항목

VDB-407528

EPSS

0.00000

출처

Do you know our Splunk app?

Download it now for free!