Linux 커널에서는 다음 취약점이 해결되었습니다. dm: 마지막 바이오 복제가 완료되면 복제된 요청 바이오 포인터를 지웁니다. 오래된 rq->bio 값으로 인해 이중 초기화가 발생하는 것으로 관찰되었습니다. 요청 기반 장치 매퍼 대상의 복제된 BIOS로 인해 use-after-free 및 double-free 시나리오. PCIe NVMe 위에서 dm-multipath를 사용할 때 이러한 경우가 발생합니다. 복제된 요청 BIOS가 해제되는 네임스페이스 blk_complete_request()이지만 rq->bio는 그대로 유지됩니다. 후속
Linux 커널에서는 다음 취약점이 해결되었습니다.
dm: 마지막 바이오 복제가 완료되면 복제된 요청 바이오 포인터를 지웁니다.
오래된 rq->bio 값으로 인해 이중 초기화가 발생하는 것으로 관찰되었습니다. 요청 기반 장치 매퍼 대상의 복제된 BIOS로 인해 use-after-free 및 double-free 시나리오.
PCIe NVMe 위에서 dm-multipath를 사용할 때 이러한 경우가 발생합니다. 복제된 요청 BIOS가 해제되는 네임스페이스 blk_complete_request()이지만 rq->bio는 그대로 유지됩니다. 후속 클론 그런 다음 분해는 다음을 통해 동일한 BIOS를 다시 해제하려고 시도합니다. blk_rq_unprep_clone().
결과적으로 이중 자유 경로는 다음과 같습니다.
nvme_pci_complete_batch() nvme_complete_batch() blk_mq_end_request_batch() blk_complete_request() // DM 복제 요청 시 호출됨 bio_endio() // 먼저 모든 클론 BIOS를 해제합니다. ... rq->end_io() // end_clone_request() dm_complete_request(tio->orig) dm_softirq_done() dm_완료() dm_end_request() blk_rq_unprep_clone() // 클론 BIOS가 두 번째로 해제되었습니다.
마지막 복제 시 복제 요청의 바이오 포인터를 지워 이 문제를 해결하세요. bio가 완료되어 이후 분해 경로가 해제를 시도하지 않도록 합니다. 이미 출시된 바이오스.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 78.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 78.00 |
VPI 공식 vpi-v1 기준