🇰🇷 한글 설명
리눅스 커널의 pds_core 모듈에서 wait_context가 스택 변수로 관리되어 발생하는 취약점입니다. 펌웨어가 느려 요청이 타임아웃된 후 인터럽트가 발생하면, 이미 사라진 스택 메모리 주소에 접근하여 잘못된 포인터 사용 및 커널 크래시를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 부품인 커널이 이미 사라진 메모리 정보를 다시 사용하려고 시도하면서 시스템이 멈추거나 충돌하는 문제입니다. 느린 하드웨어 응답이 처리되는 과정에서 메모리 관리 오류가 발생하여 나타납니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
pds_core: make wait_context part of q_info
Make the wait_context a full part of the q_info struct rather
than a stack variable that goes away after pdsc_adminq_post()
is done so that the context is still available after the wait
loop has given up.
There was a case where a slow development firmware caused
the adminq request to time out, but then later the FW finally
finished the request and sent the interrupt. The handler tried
to complete_all() the completion context that had been created
on the stack in pdsc_adminq_post() but no longer existed.
This caused bad pointer usage, kernel crashes, and much wailing
and gnashing of teeth.
📍 영향받는 시스템
Linux Kernel (pds_core 모듈을 사용하는 시스템)
⚔️ 공격 벡터
느린 응답을 보이는 펌웨어를 통해 타임아웃을 유도하여 커널 크래시를 일으키는 방식
🛡️ 대응 방법
pds_core의 wait_context를 스택이 아닌 q_info 구조체의 일부로 포함하도록 수정된 최신 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 패치된 버전인지 확인합니다.