CVE-2026-31680 in Linux
요약
\~에 의해 VulDB • 2026. 05. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net: ipv6: flowlabel: RCU 해제 시점까지 배타적 옵션의 해제를 지연시킵니다.
`ip6fl_seq_show()`는 seq-file RCU 읽기 측 잠금 하에서 전역 flowlabel 해시를 순회하며, 옵션 블록이 존재할 경우 `fl->opt->opt_nflen`을 출력합니다.
현재 배타적 flowlabels는 `fl_release()`에서 `fl->users`가 0으로 떨어지는 즉시 `fl->opt`를 해제합니다. 그러나 주변 `struct ip6_flowlabel`은 나중에 가비지 컬렉션이 이를 제거하고 `fl_free_rcu()`가 최종적으로 해제할 때까지 전역 해시 테이블에 표시됩니다.
따라서 동시 `/proc/net/ip6_flowlabel` 리더는 이러한 조기 `kfree()`와 경쟁하여 해제된 옵션 상태를 역참조하고, `ip6fl_seq_show()`에서 크래시를 유발할 수 있습니다.
`fl->opt`가 `fl_free_rcu()`까지 살아있도록 유지하여 이를 수정합니다. 이는 RCU 하에서 리더가 여전히 접근할 수 있는 동안 인클로징 flowlabel에 이미 요구되는 수명과 일치합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.