CVE-2026-23111
netfilter: nf_tables: nft_map_catchall_activate()에서 반전된 genmask 검사 수정
- 게시됨
- 2026. 2. 13.
- 업데이트됨
- 2026. 9. 8.
- CNA 할당 중
- Linux
- 증거 관찰됨
- 2026. 8. 8.
기본 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일
- 백분위수
- 41.0%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Linux 커널에서 다음 취약점이 해결되었습니다: netfilter: nf_tables: nft_map_catchall_activate()의 반전된 genmask 검사 수정. nft_map_catchall_activate()는 catchall이 아닌 대응 함수인 nft_mapelem_activate() 및 논리적으로 요구되는 사항과 비교하여 요소 활성 검사가 반전되어 있습니다. nft_map_catchall_activate()는 실패한 트랜잭션 중에 비활성화된 catchall 맵 요소를 다시 활성화하기 위해 abort 경로에서 호출됩니다. 이미 활성 상태인 요소(재활성화가 필요하지 않음)는 건너뛰고 비활성 상태인 요소(복원이 필요함)를 처리해야 합니다. 그러나 현재 코드는 그 반대입니다: 비활성 요소를 건너뛰고 활성 요소를 처리합니다. 올바른 catchall이 아닌 활성화 콜백을 비교하십시오: `nft_mapelem_activate(): if (nft_set_elem_active(ext, iter->genmask)) return 0; /* skip active, process inactive */` 버그가 있는 catchall 버전: `nft_map_catchall_activate(): if (!nft_set_elem_active(ext, genmask)) continue; /* skip inactive, process active */` 그 결과 DELSET 작업이 중단되면 catchall 요소에 대해 `nft_setelem_data_activate()`가 호출되지 않습니다. NFT_GOTO verdict 요소의 경우 이는 `chain->use` 참조 횟수를 복원하기 위해 `nft_data_hold()`가 호출되지 않음을 의미합니다. 각 abort 주기는 `chain->use`를 영구적으로 감소시킵니다. `chain->use`가 0에 도달하면 catchall verdict 요소가 여전히 체인을 참조하는 동안 DELCHAIN이 성공하여 체인을 해제하고 use-after-free가 발생합니다. 이는 CONFIG_USER_NS 및 CONFIG_NF_TABLES를 활성화한 배포판에서 비특권 사용자가 사용자 네임스페이스 + nftables를 통해 로컬 권한 상승에 악용될 수 있습니다. 부정을 제거하여 검사가 `nft_mapelem_activate()`와 일치하도록 수정합니다: 활성 요소는 건너뛰고 비활성 요소를 처리합니다.
소스
7CVE-2026-23111
- CVE-2026-23111익스플로잇
Linux 커널 nf_tables Use-After-Free(CVE-2026-23111) — LPE PoC
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.