CVE-2024-26853 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 07.

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

igc: XDP_REDIRECT에서 프레임을 중복 반환하지 않도록 수정

XDP_REDIRECT로 프레임 전송이 불가능한 경우(예: 큐가 가득 찬 경우), xdp_return_frame_rx_napi를 호출하여 해당 프레임을 해제해야 합니다.

그러나 이는 ndo_xdp_xmit의 호출자(예: kernel/bpf/devmap.c에 있는 bq_xmit_all 참조)의 책임이며, 따라서 igc 드라이버의 ndo_xdp_xmit인 igc_xdp_xmit 내부에서 이를 호출하면 메모리 손상(memory corruption)이 발생합니다.

사실 bq_xmt_all은 마지막 성공적으로 전송된 프레임 이후 모든 프레임을 반환할 수 있다고 가정합니다. 따라서 첫 번째 미전송 프레임에서 중단하되, igc_xdp_xmit 내에서 xdp_return_frame_rx_napi를 호출하지 않도록 합니다. 이는 igb와 같은 다른 인텔 드라이버에서도 동일하게 구현되어 있습니다.

이 문제에 대한 두 가지 대안이 있었으나 거부되었습니다: 1. 모든 프레임을 전송된 것으로 간주하여 num_frames를 반환하고, igc_xdp_xmit 내부에서 이를 해제합니다. 기술적으로는 작동할 수 있지만, 이는 반환 값의 의도(즉, 성공적으로 전송된 패킷의 개수)와 일치하지 않습니다. 2. kernel/bpf/devmap.c 및 모든 드라이버를 재작성하여 비연속적인 프레임 드롭을 지원하도록 합니다. 복잡성 외에도 성능에 부정적인 영향을 미칠 가능성이 높으며, 이전 프레임이 드롭되면 다음 프레임을 전송할 가능성도 낮기 때문에 상당한 이득 없이 복잡한 변경만 초래합니다.

메모리 손상은 몇 초 후에 커널 패닉(kernel panic)으로 이어지는 다음 스크립트로 재현할 수 있습니다. 이 스크립트는 i225 NIC이 처리할 수 있는 것보다 더 많은 트래픽을 생성하고, 가상 인터페이스에서 물리적 인터페이스로 XDP_REDIRECT를 통해 프레임을 전송하여 프레임이 드롭되도록 합니다.

```bash #!/bin/bash INTERFACE=enp4s0 INTERFACE_IDX=`cat /sys/class/net/$INTERFACE/ifindex`

sudo ip link add dev veth1 type veth peer name veth2 sudo ip link set up $INTERFACE sudo ip link set up veth1 sudo ip link set up veth2

cat > redirect.bpf.c << 'EOF' SEC("prog") int redirect(struct xdp_md *ctx) {
return bpf_redirect($INTERFACE_IDX, 0); }

char _license[] SEC("license") = "GPL";
EOF clang -O2 -g -Wall -target bpf -c redirect.bpf.c -o redirect.bpf.o sudo ip link set veth2 xdp obj redirect.bpf.o

cat > pass.bpf.c << 'EOF' SEC("prog") int pass(struct xdp_md *ctx) {

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

출처

Interested in the pricing of exploits?

See the underground prices here!