🇰🇷 한글 설명
Linux 커널의 TPM(Trusted Platform Module) 구현 중 tpm2_del_space() 함수에서 발생하는 레이스 컨디션 취약점입니다. TPM 장치가 제거될 때 뮤텍스(mutex)를 적절히 보호하지 않아 NULL 포인터 역참조가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 보안 칩(TPM)을 제거하는 과정에서 프로그램이 순서대로 작동하지 않아 오류가 발생하는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 충돌할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tpm: use try_get_ops() in tpm-space.c
As part of the series conversion to remove nested TPM operations:
https://lore.kernel.org/all/
[email protected]/
exposure of the chip->tpm_mutex was removed from much of the upper
level code. In this conversion, tpm2_del_space() was missed. This
didn't matter much because it's usually called closely after a
converted operation, so there's only a very tiny race window where the
chip can be removed before the space flushing is done which causes a
NULL deref on the mutex. However, there are reports of this window
being hit in practice, so fix this by converting tpm2_del_space() to
use tpm_try_get_ops(), which performs all the teardown checks before
acquring the mutex.
📍 영향받는 시스템
TPM 관련 코드가 포함된 특정 버전의 Linux 커널
⚔️ 공격 벡터
장치 제거 시점과 소프트웨어 작업 시점 사이의 타이밍을 이용한 레이스 컨디션 공격
🛡️ 대응 방법
tpm2_del_space() 함수가 tpm_try_get_ops()를 사용하도록 커널을 최신 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인