Linux 커널에서는 다음 취약점이 해결되었습니다. net: NETDEV_UP 경주를 통해 packet_release()에서 팬아웃 UAF 수정 `packet_release()`에는 `NETDEV_UP`이 패킷을 다시 등록할 수 있는 경쟁 창이 있습니다. 팬아웃 그룹의 `arr[]` 배열에 소켓을 연결합니다. 재등록은 안됩니다 `fanout_release()`에 의해 정리되어 팬아웃에 매달린 포인터가 남습니다. 배열. `packet_release()`는 `bind_lock` 섹션에서 `po->num`을 0으로 만들지 않습니다. `bind_lock`을 해제한 후에도 `po->num`은 여전히 0이 아니고 `po->ifindex`입니다.
Linux 커널에서는 다음 취약점이 해결되었습니다.
net: NETDEV_UP 경주를 통해 packet_release()에서 팬아웃 UAF 수정
packet_release()에는 NETDEV_UP이 패킷을 다시 등록할 수 있는 경쟁 창이 있습니다.
팬아웃 그룹의 arr[] 배열에 소켓을 연결합니다. 재등록은 안됩니다
fanout_release()에 의해 정리되어 팬아웃에 매달린 포인터가 남습니다.
배열.
packet_release()는 bind_lock 섹션에서 po->num을 0으로 만들지 않습니다.
bind_lock을 해제한 후에도 po->num은 여전히 0이 아니고 po->ifindex입니다.
여전히 바인딩된 장치와 일치합니다. 동시 packet_notifier(NETDEV_UP)
sklist에서 이미 소켓을 찾은 경우 후크를 다시 등록할 수 있습니다.
팬아웃 소켓의 경우 이 재등록은 __fanout_link(sk, po)를 호출합니다.
소켓을 f->arr[]에 다시 추가하고 f->num_members를 증가시킵니다.
하지만 f->sk_ref는 증가하지 않습니다.
수정 사항은 packet_release에서 po->num을 0으로 설정하고 bind_lock은
NETDEV_UP이 연결되지 않도록 유지하여 경쟁 기간을 방지합니다.
이 버그는 Claude Code 기반의 추가 감사 후에 발견되었습니다. CVE-2025-38617.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 78.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 78.00 |
VPI 공식 vpi-v1 기준