🇰🇷 한글 설명
Linux 커널의 lpfc 드라이버에서 mailbox 타임아웃 발생 시 메모리 해제 로직을 적절히 처리하지 못하는 취약점입니다. 타임아웃 발생 후 펌웨어가 나중에 정보를 반환할 때 이미 해제된 메모리 영역을 참조하게 되어 시스템 불안정이나 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품과 통신할 때 응답이 늦어지면 시스템이 메모리를 미리 비워버리는데, 나중에 부품이 응답을 보내면 이미 사라진 메모리를 찾으려다 문제가 생기는 현상입니다. 이로 인해 시스템이 멈추거나 예상치 못한 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: lpfc: Handle mailbox timeouts in lpfc_get_sfp_info
The MBX_TIMEOUT return code is not handled in lpfc_get_sfp_info and the
routine unconditionally frees submitted mailbox commands regardless of
return status. The issue is that for MBX_TIMEOUT cases, when firmware
returns SFP information at a later time, that same mailbox memory region
references previously freed memory in its cmpl routine.
Fix by adding checks for the MBX_TIMEOUT return code. During mailbox
resource cleanup, check the mbox flag to make sure that the wait did not
timeout. If the MBOX_WAKE flag is not set, then do not free the resources
because it will be freed when firmware completes the mailbox at a later
time in its cmpl routine.
Also, increase the timeout from 30 to 60 seconds to accommodate boot
scripts requiring longer timeouts.
📍 영향받는 시스템
Linux kernel (lpfc driver 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 하드웨어 펌웨어의 응답 지연을 유도하여 Use-After-Free 취약점을 악용할 수 있음
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 lpfc 드라이버의 타임아웃 처리 로직을 수정해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.