CVE-2026-23397 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 26.

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

nfnetlink_osf: 지문(fingerprints) 내 개별 옵션 길이 검증

nfnl_osf_add_callback()은 opt_num의 경계와 문자열의 NUL 종료를 검증하지만, 개별 옵션 길이 필드는 확인하지 않습니다. 길이가 0인 옵션은 foptsize의 합이 0인 경우에도 nf_osf_match_one()가 옵션 매칭 루프에 진입하게 하며, 이는 ctx->optp가 NULL인 TCP 옵션이 없는 패킷과 매칭됩니다:

Oops: general protection fault KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
RIP: 0010:nf_osf_match_one (net/netfilter/nfnetlink_osf.c:98) Call Trace: nf_osf_match (net/netfilter/nfnetlink_osf.c:227) xt_osf_match_packet (net/netfilter/xt_osf.c:32) ipt_do_table (net/ipv4/netfilter/ip_tables.c:293) nf_hook_slow (net/netfilter/core.c:623) ip_local_deliver (net/ipv4/ip_input.c:262) ip_rcv (net/ipv4/ip_input.c:573)

또한, 길이가 4보다 작은 MSS 옵션(kind=2)은 nf_osf_match_one()이 MSS 값 추출을 위해 optp[2]와 optp[3]을 무조건 접근할 때 경계 밖 읽기(out-of-bounds reads)를 유발합니다. RFC 9293 섹션 3.2는 MSS 옵션이 항상 정확히 4바이트(Kind=2, Length=4)라고 명시하지만, 검증은 "!= 4"가 아닌 "< 4"를 사용합니다. 이는 4보다 큰 길이는 메모리 안전 문제를 유발하지 않기 때문입니다. ctx->optsize == foptsize 검증에 의해 버퍼가 최소한 foptsize 바이트 이상임이 보장됩니다.

패킷 매칭의 핫 경로(hot path)에서 이러한 값을 신뢰하는 대신, 추가(add) 시점에 길이가 0인 옵션이 있거나 MSS 옵션의 길이가 4보다 작은 지문을 거부합니다.

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

책임이 있는

Linux

예약하다

2026. 01. 13.

모더레이션

수락

항목

VDB-353578

EPSS

0.00022

출처

Might our Artificial Intelligence support you?

Check our Alexa App!