🇰🇷 한글 설명
Linux 커널의 lpfc 드라이버에서 lpfc_drain_txq() 함수가 txq 리스트를 처리할 때 list_add() 데이터 구조가 손상되는 취약점입니다. 작업 실패 시 설정된 오류 메시지가 초기화되지 않아, 이후의 정상적인 작업들까지 잘못된 리스트에 추가되면서 메모리 오염을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 부품을 관리하는 소프트웨어에서 작업 목록을 정리하다가 실수로 목록이 꼬여버리는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 예상치 못한 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
When parsing the txq list in lpfc_drain_txq(), the driver attempts to pass
the requests to the adapter. If such an attempt fails, a local "fail_msg"
string is set and a log message output. The job is then added to a
completions list for cancellation.
Processing of any further jobs from the txq list continues, but since
"fail_msg" remains set, jobs are added to the completions list regardless
of whether a wqe was passed to the adapter. If successfully added to
txcmplq, jobs are added to both lists resulting in list corruption.
Fix by clearing the fail_msg string after adding a job to the completions
list. This stops the subsequent jobs from being added to the completions
list unless they had an appropriate failure.
📍 영향받는 시스템
lpfc 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
특정 조건에서 SCSI 전송 큐(txq) 처리를 유도하여 커널 메모리 손상 유발
🛡️ 대응 방법
lpfc 드라이버의 오류 메시지 초기화 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인