🇰🇷 한글 설명
Linux 커널의 s390/dasd 구성 요소에서 ESE 읽기 작업이 실패했음에도 불구하고 성공한 것으로 잘못 처리되는 취약점이 발견되었습니다. 이로 인해 할당되지 않은 트랙을 읽을 때 목적지 버퍼가 초기화되지 않은 채 블록 계층으로 전달되어, 초기화되지 않은 메모리(stale memory)가 노출될 수 있습니다.
💡 쉬운 설명
컴퓨터가 데이터를 읽으려다 실패했는데도 '성공했다'고 착각하여, 이전에 사용하던 다른 데이터가 담긴 메모리 조각을 그대로 보여주는 문제입니다. 이로 인해 보안상 민감한 정보가 의도치 않게 유출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
s390/dasd: Do not complete a failed ESE read as successful
dasd_int_handler() completes an NRF read of an unallocated ESE track by
calling ese_read() and unconditionally marking the request
DASD_CQR_SUCCESS. dasd_eckd_ese_read() can return an error before it has
zeroed the destination buffer: a failed sense-data parse or a current
track outside the requested range both return early, leaving the
destination pages untouched. The request is still completed successfully,
so the block layer is handed stale / uninitialized memory instead of
zeros.
Check the ese_read() return value and fail the request through the normal
error path instead of forcing DASD_CQR_SUCCESS.
📍 영향받는 시스템
Linux kernel (s390 architecture, dasd driver)
⚔️ 공격 벡터
특정 조건에서 잘못된 ESE 읽기 요청을 유도하여 초기화되지 않은 커널 메모리 내용을 획득
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ese_read()의 반환 값을 올바르게 처리하도록 수정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인