🇰🇷 한글 설명
Linux 커널의 IPv6 FIB6 워커에서 seq stop 시 발생하는 Use-After-Free(UAF) 취약점입니다. 특정 경로에서 라우트 삭제 시 워커가 리스트에서 제대로 해제되지 않아, 이미 해제된 메모리 객체를 참조하게 되어 시스템 불안정이나 권한 상승을 초래할 수 있습니다.
💡 쉬운 설명
네트워크 경로 정보를 읽는 과정에서 메모리 관리 오류가 발생하여, 이미 삭제된 데이터를 다시 사용하려고 시도하는 문제입니다. 이로 인해 컴퓨터 시스템이 멈추거나 해커가 시스템 제어권을 얻을 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ipv6: fix fib6 walker UAF on seq stop
ipv6_route_iter_active() treats a walker in FWS_U at the table root as
already unlinked. fib6_del_route() can move a still-linked walker into
that same state when the current leaf is the last route at the root,
so ipv6_route_native_seq_stop() skips fib6_walker_unlink(). The seq
private object can then be freed while it remains on
net->ipv6.fib6_walkers. A later route deletion walks the dangling list
and uses the freed walker.
Use the list head as membership state and reinitialize it when
unlinking. Keep the existing w->node check so a never-started iterator
with a zeroed private object is not treated as linked.
The same stop helper is used by /proc/net/ipv6_route and by the BPF
ipv6_route iterator. The BPF show path only widens the race.
📍 영향받는 시스템
IPv6 기능을 사용하는 Linux 커널 (패치 전 버전)
⚔️ 공격 벡터
네트워크 라우트 삭제와 동시에 /proc/net/ipv6_route 또는 BPF를 통한 경로 조회를 수행하여 메모리 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 보안 패치 버전인지 확인