CVE-2026-64232 in Linux
요약
\~에 의해 VulDB • 2026. 07. 24.
리눅스 커널에서 다음 취약점이 해결되었습니다:
block: blk_insert_cloned_request에서 nr_integrity_segments 재계산
blk_insert_cloned_request()는 이미 하단 큐(bottom queue)에 대해 nr_phys_segments를 재계산합니다. 그 이유는 "세그먼트 카운팅과 관련된 큐 설정이 원래 큐와 다를 수 있기" 때문입니다. 동일한 논리가 무결성 세그먼트(integrity segments)에도 적용됩니다: 스택된 드라이버의 하위 큐는 상위 큐(top queue)보다 더 엄격한 virt_boundary_mask, seg_boundary_mask 또는 max_segment_size를 가질 수 있으며, 이 경우 blk_rq_count_integrity_segments()가 하단 큐에 대해 수행하면 blk_rq_prep_clone()에서 소스 요청으로부터 상속받은 캐시된 rq->nr_integrity_segments와 다른 카운트가 생성됩니다.
캐시된 카운트가 하위 큐의 실제 카운트보다 낮을 때, blk_rq_map_integrity_sg()는 디스패치 시 다음 BUG_ON 조건에 부딪힙니다:
BUG_ON(segments > rq->nr_integrity_segments);
기존 nr_phys_segments 재계산을 촉발한 동일한 유형의 스택된 설정들(특히 dm-multipath가 nvme-rdma로 분기되는 경우)에서 이러한 문제가 발생할 수 있습니다.
nr_phys_segments 처리 방식을 반영합니다: 요청에 무결성(integrity)이 포함된 경우, 하단 큐에 대해 nr_integrity_segments를 재계산하고 하위 큐의 max_integrity_segments를 초과하는 경우 요청을 거부합니다. blk_rq_count_integrity_sg()와 queue_max_integrity_segments()는 모두 <linux/blk-integrity.h>를 통해 이미 사용 가능하며, 이 헤더 파일은 blk-mq.c에서 포함됩니다.
이 수정으로 스택 계약(stacking contract) 내의 잠재적 결함을 해소하고 무결성 세그먼트 계정을 기존 물리적 세그먼트 계정과 일치시킵니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.