🇰🇷 한글 설명
Linux 커널의 QAT(QuickAssist Technology) 드라이버에서 펌웨어가 반환하는 슬라이스 개수 값을 검증하지 않아 발생하는 취약점입니다. 잘못된 값이 전달될 경우 메모리 경계를 벗어난 읽기(Out-of-bounds read)가 발생할 수 있습니다.
💡 쉬운 설명
하드웨어 장치가 보내주는 정보가 올바른지 확인하는 과정이 빠져 있어, 잘못된 정보를 읽을 때 시스템 메모리의 민감한 영역을 들여다볼 위험이 있습니다. 현재는 실제 공격 사례가 없으나 시스템의 안정성을 위해 수정이 필요합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
crypto: qat - validate slices count returned by FW
The function adf_send_admin_tl_start() enables the telemetry (TL)
feature on a QAT device by sending the ICP_QAT_FW_TL_START message to
the firmware. This triggers the FW to start writing TL data to a DMA
buffer in memory and returns an array containing the number of
accelerators of each type (slices) supported by this HW.
The pointer to this array is stored in the adf_tl_hw_data data
structure called slice_cnt.
The array slice_cnt is then used in the function tl_print_dev_data()
to report in debugfs only statistics about the supported accelerators.
An incorrect value of the elements in slice_cnt might lead to an out
of bounds memory read.
At the moment, there isn't an implementation of FW that returns a wrong
value, but for robustness validate the slice count array returned by FW.
📍 영향받는 시스템
Linux kernel (QAT driver 사용 환경)
⚔️ 공격 벡터
조작된 펌웨어를 통한 메모리 경계 외 데이터 읽기 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인