🔍 CVE-2026-98099

0.0
CVSS Score
UNKNOWN
2026-09-25
2026-10-21 13:21
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 IPv6 멀티캐스트 구현에서 RCU 보호 목록을 업데이트할 때 rcu_assign_pointer() 대신 직접적인 포인터 할당을 사용하는 취약점이 발견되었습니다. 이로 인해 잠금 없이 목록을 탐색하는 동시 읽기 작업과 경합이 발생하여 데이터 불일치나 시스템 불안정을 초래할 수 있습니다.

💡 쉬운 설명

컴퓨터가 데이터를 읽고 쓰는 과정에서 순서를 제대로 맞추지 않아 정보가 꼬이는 문제가 발생할 수 있습니다. 이로 인해 네트워크 기능이 오작동하거나 시스템이 불안정해질 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: use rcu_assign_pointer() for __rcu list updates Several places in net/ipv6/mcast.c update RCU-protected lists (np->ipv6_mc_list, idev->mc_list, idev->mc_tomb) using direct pointer assignments instead of rcu_assign_pointer(): 1. In __ipv6_dev_mc_dec(), unlinking a group from idev->mc_list did: *map = ma->next; without rcu_assign_pointer() while concurrent readers traverse idev->mc_list locklessly under rcu_read_lock(). 2. In ipv6_sock_mc_drop() and __ipv6_sock_mc_close(), unlinking a group from np->ipv6_mc_list directly assigned *lnk = mc_lst->next and np->ipv6_mc_list = mc_lst->next without rcu_assign_pointer(), racing with lockless readers in inet6_mc_check(). 3. In __ipv6_sock_mc_join(), mc_lst->next was initialized to np->ipv6_mc_list via raw assignment before publishing mc_lst. 4. In mld_del_delrec() and __ipv6_dev_mc_inc(), __rcu source pointers passed into rcu_assign_pointer() lacked explicit dereference helpers. Fix these by consistently using rcu_assign_pointer() along with mc_dereference() / sock_dereference().

📍 영향받는 시스템

RCU 보호 목록을 사용하는 리눅스 커널 (IPv6 멀티캐스트 관련 모듈)

⚔️ 공격 벡터

네트워크 패킷을 통한 멀티캐스트 그룹 가입/탈퇴 조작으로 커널 내 레이스 컨디션 유도

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 rcu_assign_pointer()가 적용된 수정본을 사용해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel