🇰🇷 한글 설명
Linux 커널의 atmel-sha204a 드라이버에서 I2C 전송 실패 시 힙 정보 유출 취약점이 발견되었습니다. I2C 전송 오류 발생 시 할당된 work_data 구조체가 해제되지 않고 남아 있어, 이후 읽기 시도 시 오래된 데이터가 유효한 난수 데이터로 오인될 수 있습니다.
💡 쉬운 설명
기기 내부의 통신이 실패했을 때, 남아있는 찌꺼기 데이터가 마치 정상적인 난수 데이터인 것처럼 잘못 전달될 수 있는 문제입니다. 이로 인해 보안에 중요한 난수 생성 기능이 취약해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
crypto: atmel-sha204a - fix heap info leak on I2C transfer failure
The nonblocking RNG path allocates a work_data structure to track the
state of an in-flight asynchronous I2C request. This pointer is stored
in rng->priv and later consumed by the read path once the transaction
completes.
If the underlying I2C transfer fails, the completion callback is invoked
with a non-zero status. In this case, the allocated work_data is not
usable for producing RNG output and must not remain associated with the
hwrng state.
Previously, the failure path only logged a warning but left the pointer
state uncleared, which can result in subsequent read attempts observing
stale state and interpreting it as valid completion data.
Fix this by freeing the pending work_data. The I2C transaction reports
an error. This ensures that failed requests do not leave residual state
behind that could be interpreted as valid RNG data on later reads.
Clearing rng->priv is done at the subsequent call to nonblocking read.
📍 영향받는 시스템
Linux kernel (atmel-sha204a driver 사용 시스템)
⚔️ 공격 벡터
I2C 전송 실패를 유도하여 메모리에 남은 이전 상태 데이터를 난수 값으로 읽어내는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 I2C 실패 시 work_data가 정상적으로 해제되도록 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.