CVE-2026-68138
net/sched: 동시 get/put에 대해 qdisc_rtab_list 직렬화
- 게시됨
- 2026. 8. 10.
- 업데이트됨
- 2026. 8. 23.
- CNA 할당 중
- Linux
- 증거 관찰됨
- 2026. 8. 19.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H낮음 · 다음 30일
- 백분위수
- 21.0%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Linux 커널에서 다음 취약점이 해결되었습니다: net/sched: 동시 get/put에 대해 qdisc_rtab_list 직렬화 qdisc_get_rtab()과 qdisc_put_rtab()은 프로세스 전역 단일 연결 리스트인 qdisc_rtab_list와 잠금 없는 일반 비원자적 'int refcnt'를 변경합니다. 이는 과거에 모든 호출자가 RTNL 뮤텍스를 보유하여 모든 rate-table 조회, 삽입 및 해제를 직렬화했기 때문에 안전했습니다. 그러나 그 불변 조건은 더 이상 유지되지 않습니다. cls_flower는 TCF_PROTO_OPS_DOIT_UNLOCKED를 설정하므로 tc_new_tfilter()는 이에 대해 rtnl_held == false를 유지하고 TCA_ACT_FLAGS_NO_RTNL을 설정합니다. 해당 플래그는 tcf_exts_validate_ex() -> tcf_action_init() -> tcf_action_init_1() -> tcf_police_init()을 통해 전파되며, 이 함수는 RTNL 뮤텍스를 보유하지 않은 상태에서 qdisc_get_rtab()/qdisc_put_rtab()을 호출합니다. 서로 다른 CPU에서 두 개의 RTM_NEWTFILTER 요청이 각각 동일한 rate를 가진 police 액션이 포함된 flower 필터를 추가하면 qdisc_rtab_list와 비원자적 refcnt에서 경합이 발생하여 kmalloc-2k 구조체 qdisc_rate_table의 use-after-free / double-free로 이어집니다. qdisc_rtab_list는 (per-netns가 아닌) 단일 전역이므로 손상된 객체는 시스템 전체에 공유됩니다. BUG: KASAN: qdisc_put_rtab+0x12f/0x160에서 slab-use-after-free qdisc_put_rtab+0x12f/0x160 tcf_police_init+0xda9/0x1590 tcf_action_init_1+0x460/0x6b0 tcf_action_init+0x439/0xa40 tcf_exts_validate_ex+0x42d/0x550 fl_change+0xddd/0x7da0 tc_new_tfilter+0xaa7/0x2420 rtnetlink_rcv_msg+0x95e/0xe90 이는 크기 2048의 kmalloc-2k 캐시에 속합니다. 전용 스핀락으로 qdisc_rtab_list와 refcount를 보호합니다. qdisc_get_rtab()의 (슬립 가능한, GFP_KERNEL) 할당은 잠금을 획득하기 전에 수행됩니다. 그 사이에 동시 삽입자가 동일한 테이블을 추가한 경우 새로 할당된 테이블은 잠금 하에서 해제되므로 중복이 누출되지 않습니다. qdisc_put_rtab()은 이제 동일한 잠금 하에서 refcount를 감소시키고 연결을 해제합니다.
소스
3- CVE-2026-68138익스플로잇
Linux qdisc rate-table 경쟁 조건을 악용하는 개념 증명(PoC) 로컬 권한 상승 익스플로잇으로, BPF 힙 그루밍과 파이프 누수를 이용해 루트 권한을 획득합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.