CVE-2026-98372 in Linux정보

요약

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

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

xfrm: iptfs: iptfs_skb_reset_frag_walk()의 스택 OOB(Out-of-Bounds) 읽기 수정

iptfs_skb_reset_frag_walk()는 @offset을 포함하는 파편으로 진행하기 위해 무제한 루프를 사용합니다:

while (offset >= walk->past + walk->frags[walk->fragi].len)
walk->past += walk->frags[walk->fragi++].len;

walk->fragi가 증가되고 walk->frags[walk->fragi]가 디레퍼런스되지만, fragi를 walk->nr_frags와 비교하여 범위를 확인하는 과정이 전혀 수행되지 않습니다. 요청된 offset이 워크의 파편들이 차지하는 전체 길이 범위 내에 있거나 그 이상인 경우, fragi는 nr_frags를 초과하여 고정 크기 스택 배열 frags[MAX_SKB_FRAGS + 1]의 끝을 벗어나며, 이로 인해 바깥쪽 스택 메모리를 읽게 됩니다.

두 호출자는 서로 다른 동작을 보입니다: iptfs_skb_add_frags()는 이미 다음과 같은 보호 장치를 갖추고 있습니다.

if (!walk->nr_frags || offset >= walk->total + walk->initial_offset) return len;

하지만 iptfs_skb_can_add_frags()에는 이러한 보호 장치가 없으며, 조건 없이 iptfs_skb_reset_frag_walk()를 호출하므로 범위 밖의 워크가 수행됩니다. 자체적인 "fragi < walk->nr_frags" 경계 검사도 이후에 실행되므로, 읽기 작업을 방지하기에는 너무 늦습니다.

이 취약점은 수신 경로에서 접근 가능합니다: IPTFS SA로 전달되는 조작성 IP-TFS (AGGFRAG) 페이로드가 offset을 파편 총 길이보다 크게 설정하여 iptfs_reassem_cont() -> iptfs_skb_can_add_frags()를 호출합니다. 예를 들어 다음과 같은 오류가 발생합니다:

BUG: KASAN: stack-out-of-bounds in iptfs_skb_reset_frag_walk+0x235/0x250 Read of size 4 at addr ffff888008ad7210 by task repro/345 iptfs_skb_reset_frag_walk+0x235/0x250 net/xfrm/xfrm_iptfs.c:392 iptfs_skb_can_add_frags+0x155/0x310 net/xfrm/xfrm_iptfs.c:420 iptfs_reassem_cont+0xcf8/0x1140 net/xfrm/xfrm_iptfs.c:902 iptfs_input_ordered+0x552/0x670 net/xfrm/xfrm_iptfs.c:1280 iptfs_input+0x3d6/0xde0 net/xfrm/xfrm_iptfs.c:1741 xfrm_input+0x282f/0x6140 net/xfrm/xfrm_input.c:700 xfrm4_esp_rcv+0x93/0x120 net/ipv4/xfrm4_protocol.c:104 ip_rcv+0x278/0x2d0 net/ipv4/ip_input.c:612

iptfs_skb_can_add_frags()에 iptfs_skb_add_frags()가 이미 가지고 있는 동일한 초기 보호 장치를 추가하여, 범위 밖의 offset으로 워크가 진입하지 않도록 합니다. 이 조건이 발생하면 호출자는 기존인 linearize-and-copy 경로로 폴백하며, 이는 안전합니다.

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

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-414209

EPSS

0.00161

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!