CVE-2026-14366 in Zephyr정보

요약

\~에 의해 VulDB • 2026. 08. 31.

Silicon Labs SiWx917 WiFi 드라이버의 `drivers/wifi/siwx91x/siwx91x_wifi.c`에 있는 전송 콜백 함수인 `siwx91x_send()`는 자신이 소유하지 않은 네트워크 패킷을 해제(frees)합니다. Zephyr TX 경로에서 `net_pkt`는 L2/네트워킹 스택이 소유하며, 드라이버는 프레임 바이트를 로컬 `net_buf`로 복사하기 위해 이를 빌려 사용합니다. 수정 전에는 전송 후 `siwx91x_send()`가 호출자가 소유한 패킷에 대해 추가로 `net_pkt_unref(pkt)`를 호출하여 마지막 참조 카운트를 감소시키고 공유된 패킷 풀(pool)으로 조기에 반환했습니다. 이 코드 경로는 기본적으로 컴파일됩니다(CONFIG_WIFI_SILABS_SIWX91X_NET_STACK_NATIVE).

호출자 함수인 `subsys/net/l2/ethernet/ethernet.c`의 `ethernet_send()`는 드라이버가 반환한 후에도 패킷을 계속 사용합니다: `net_pkt_get_len(pkt)`를 읽고, TX 통계를 업데이트한 다음 자체적인 `net_pkt_unref(pkt)`를 수행합니다. 이미 드라이버가 패킷을 해제했기 때문에, 이는 Use-After-Free 읽기에 이어 두 번째 unref(이중 자유, double free)로 이어집니다. 동시 네트워크 활동으로 인해 freed slab 슬롯(slot)이 두 unref 사이에서 재활용되면, 후행(unfollowing) unref는 다른 활성(live) 패킷의 참조 카운트를 감소시켜 이를 해제하고, 수신 및 전송 경로 모두에서 공유되는 `net_pkt` 풀을 손상시킵니다.

이 결함은 네이티브 스택 SiWx917 WiFi 인터페이스를 통한 일반 전송 시 발생합니다. 동일한 WiFi 네트워크에 인접한 공격자는 ARP 또는 ICMP echo reply, TCP handshake 등의 전송을 유도하여 해당 코드 경로를 유발할 수 있습니다. 주요 관측 가능한 영향은 가용성 손실(풀 손상으로 인한 전송 멈춤 및 크래시)이며, Race Condition에 따른 커널 네트워킹 버퍼 풀의 메모리 부패가 발생합니다. 수정 사항으로는 `siwx91x_send()`에서 오류 있는 `net_pkt_unref(pkt)` 호출을 제거하는 것이 포함됩니다. 드라이버의 수신 경로(unref)는 자체적으로 할당한 패킷을 올바르게 해제하므로 영향을 받지 않습니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

Zephyr

예약하다

2026. 07. 01.

모더레이션

수락

항목

VDB-397389

EPSS

0.00000

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!