🇰🇷 한글 설명
Linux 커널의 s390/dasd 드라이버에서 ERP 복구 과정 중 부분 완료된 데이터의 길이를 제대로 전달하지 못하는 취약점이 발견되었습니다. 이로 인해 일부 데이터만 읽힌 요청이 복구될 때 처리된 바이트 수를 잃어버려, 남은 데이터를 다시 요청하는 대신 0으로 채워진 데이터를 반환하게 됩니다.
💡 쉬운 설명
데이터를 읽는 도중 오류가 발생해 일부만 읽었을 때, 시스템이 얼마나 읽었는지 잊어버리는 문제입니다. 결과적으로 읽지 못한 부분에 실제 데이터 대신 0(빈 값)이 채워져 데이터가 손상될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
s390/dasd: Propagate partial completion length across ERP recovery
dasd_default_erp_postaction() copies the timing and device state from
the finished ERP request back to the original request but drops
proc_bytes. A request that was partially completed, an ESE read of a
not-yet-allocated track returns fewer bytes than requested, and then
recovered through the ERP chain loses its partial-completion length.
__dasd_cleanup_cqr() then sees proc_bytes == 0 and completes the whole
request instead of requeueing the remainder, silently returning zeroed
data for the part that was never read.
Carry proc_bytes over to the original request like the other
per-request state.
📍 영향받는 시스템
Linux kernel (s390 architecture, dasd driver)
⚔️ 공격 벡터
특정 하드웨어 오류 상황에서 ERP(Error Recovery Procedure)가 작동할 때 발생하는 데이터 무결성 손상
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 proc_bytes 전달 로직을 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.