CVE-2026-53264
net/sched: act_api: 액션 수명주기에 지연 해제와 함께 RCU 사용
- 게시됨
- 2026. 6. 25.
- 업데이트됨
- 2026. 8. 5.
- CNA 할당 중
- Linux
- 증거 관찰됨
- 2026. 8. 7.
기본 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일
- 백분위수
- 15.6%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Linux 커널에서 다음 취약점이 해결되었습니다: net/sched: act_api: 액션 수명 주기에 RCU와 지연 해제 사용 NEWTFILTER와 DELFILTER가 동시에 실행되면 연관된 액션과의 경합 조건(race condition)이 발생할 수 있습니다. CPU0에서 NEWTFILTER를 실행하고 CPU1에서 DELFILTER를 실행하는 상황을 예로 들어 설명하겠습니다: 0: mutex_lock() <-- idr 잠금을 보유 0: rcu_read_lock() 0: p = idr_find(idr, index) <-- 액션 p는 유효함 (RCU가 IDR을 보호) 0: mutex_unlock() <-- idr 잠금 해제 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex 보유 1: idr_remove(idr, index) <-- 액션이 IDR에서 제거됨 1: mutex_unlock() <-- mutex 해제로 액션 삭제 가능 1: tcf_action_cleanup(p); kfree(p) <-- p를 즉시 해제, 지연 없음 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- 문제 발생, UAF p가 해제된 메모리를 가리킴 이 패치는 tc_action에 struct rcu_head를 추가하여 지연(deferral)에 사용하고, 삭제 경로에 call_rcu()를 도입하여 최종 kfree()를 지연시킴으로써 NEWTFILTER와 DELFILTER 간의 경합 조건을 수정합니다. 참고: 이는 커밋 d7fb60b9cafb ("net_sched: get rid of tcfa_rcu")의 되돌림이면서도 kfree_rcu()를 직접 사용하도록 현대화/단순화한 것입니다. 복원된 새 코드 경로를 설명하겠습니다: 0: rcu_read_lock() 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex 보유 1: idr_remove(idr, index) 1: mutex_unlock() 1: call_rcu(&p->tcfa_rcu, tcf_action_rcu_free) <-- 유예 기간(grace period) 후 kfree 지연 0: p = idr_find(idr, index) 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- 실패, refcnt가 이미 0 1: rcu_read_unlock() <-- 해제하여 유예 기간 후 해제 실행 가능 CPU1이 idr_remove()를 호출한 후에는 객체가 더 이상 IDR을 통해 접근할 수 없습니다. CPU0의 이후 idr_find()는 NULL을 반환하며, 설령 오래된 포인터를 계속 보유하고 있더라도 즉각적인 kfree()는 이제 RCU 유예 기간이 끝날 때까지 지연되므로 UAF가 발생할 수 없습니다.
소스
2CVE-2026-53264 - 초안
- CVEPoC
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.