CVE-2026-98629 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 19.

Linux 커널에서 다음 취약점이 해결되었습니다:

net/sched: cls_u32: 수동 해시 테이블 핸들 IDR aliasing 수정

명확한 핸들을 사용하여 생성된 u32 해시 테이블('tc filter add ... handle 801: u32 divisor N')은 IDR 엔트리를 원본(raw) 핸들에 키로 사용합니다. 반면, 삭제 경로(handle2id(handle))에서는 해당 핸들로 ID를 매핑하여 해제합니다. 두 키 도메인은 0x800..0xFFF htid 범위 내의 핸들에서 일치하지 않습니다: handle2id()는 이를 자동 할당된 ID 공간(1..0x7FF)으로 다시 폴딩(folds back)합니다.

따라서 수동 테이블은 삭제 시 원본 키로 된 IDR 엔트리에 도달할 수 없게 되어(영구적인 메모리 누수), 삭제가 관련 없는 활성 상태의 자동 할당 테이블의 IDR 엔트리를 제거할 수 있습니다. 이후의 자동 할당은 해당 활성 수동 테이블과 aliasing되는 핸들을 제공할 수 있으며, u32_lookup_ht()는 첫 번째 일치 라우팅을 통해 TCA_U32_LINK와 함께 해당 htid에 대한 조회를 잘못된 테이블로 유도합니다.

divisor 경로 할당을 handle2id(handle)에 키로 설정하여 할당 및 제거가 하나의 키 도메인을 공유하도록 합니다. 이미 사용 중인 ID에 매핑되는 수동 핸들은 -ENOSPC 오류로 거부되며, 자동 할당은 활성 상태의 수동 테이블이 보유한 IDs를 건너뜁니다.

재현 조건: ip link add test0 type dummy tc qdisc add dev test0 clsact tc filter add dev test0 ingress protocol ip pref 1 \ handle 801: u32 divisor 16 tc filter add dev test0 ingress protocol ip pref 2 u32 divisor 16 tc -d filter show dev test0 ingress | grep 'fh 801:' # 패치 전: 두 개의 활성 테이블이 handle 0x80100000을 가짐 (pref 2 루트 hnode는 자동 할당된 ID 1); 패치 후: 자동 hnode가 ID 2를 가져감.

블록에 활성 u32 테이블이 있는 PoC로도 테스트되었으며, 수동 테이블 'handle 901: u32 divisor 1'을 두 번 추가/삭제했습니다; 패치 전에는 첫 번째 삭제 시 원본 키가 누출되어 재추가 시 -ENOSPC로 실패합니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-422118

EPSS

0.00000

활동

낮음

출처

Want to know what is going to be exploited?

We predict KEV entries!