🇰🇷 한글 설명
Linux 커널의 nvmet-fc 구성 요소에서 LS IOD 오류 경로 처리 중 잘못된 메모리 해제(invalid free)가 발생하는 취약점입니다. 메모리 할당 실패 시 언와인드 루프가 배열 시작 지점 이전의 주소를 가리키게 되어, 잘못된 메모리 영역을 해제함으로써 시스템 불안정성을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 과정에서 실수로 잘못된 위치를 지워버리는 오류가 발견되었습니다. 이로 인해 시스템이 갑자기 멈추거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nvmet-fc: fix invalid free in LS IOD error path
nvmet_fc_alloc_ls_iodlist() advances iod while initializing the LS IOD
array. If an rqstbuf allocation or response buffer DMA mapping fails,
the unwind loop decrements iod past the start of the array. The final
kfree(iod) therefore frees an address before the allocated object.
This can be reproduced with nvme-fcloop and failslab by setting
fail-nth to 6 before creating a target port. KASAN reports:
BUG: KASAN: invalid-free in nvmet_fc_register_targetport
Free of addr ffff88816cf8ff48 by task nvmet_fail_nth/9552
Free the original allocation base stored in tgtport->iod instead. With
this fix applied, the same sysfs write with fail-nth=6 returns -ENOMEM
without any KASAN report.
📍 영향받는 시스템
Linux kernel (nvmet-fc 모듈 사용 환경)
⚔️ 공격 벡터
로컬 공격자가 특정 조건(nvme-fcloop 및 failslab 활용)을 조작하여 메모리 할당 실패를 유도함으로써 발생 가능
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 배포판의 보안 업데이트 버전인지 확인하십시오.