CVE-2026-64205 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 21.

리눅스 커널에서 다음 취약점이 해결되었습니다:

i2c: i801: 오류 처리 경로에서의 하드웨어 상태 머신 손상 수정

동시 퍼징(Fuzzing) 수행 중 i2c-i801 드라이버에서 심각한 라이브락(livelock)과 그로 인한 Hung Task 패닉이 관찰되었습니다. 이 크래시는 i801_access()의 오류 처리 경로에서 조건 없이 실행되는 하드웨어 레지스터 정리(clean up) 코드로 인해 발생합니다.

i801_check_pre()가 실패하는 경우(예: SMBus 컨트롤러가 BIOS/ACPI에 의해 활성 사용 중이어서 -EBUSY를 반환할 때), 커널은 실제로 하드웨어 소유권을 획득하지 않습니다. 그러나 코드에서는 'out' 레이블로 점프하여 다음 명령을 실행합니다:

iowrite8(SMBHSTSTS_INUSE_STS | STATUS_FLAGS, SMBHSTSTS(priv));

이렇게 하면 컨트롤러에 대한 소유권 없이 INUSE_STS 잠금을 강제로 해제하고 하드웨어 상태 플래그를 초기화하게 됩니다. 이로 인해 진행 중인 BIOS/ACPI 트랜잭션이 중단되고 SMBus 하드웨어 상태 머신이 완전히 손상됩니다.

결과적으로 모든 후속 i801_access() 호출은 사전 검사(pre-check) 단계에서 실패하며, "SMBus is busy, can't use it!"라는 오류 로그가 무한히 생성됩니다. 느린 시리얼 콘솔 환경에서는 이러한 printk 폭풍이 CPU를 독점하여(Console Livelock), mmap_lock down_read 세마포어를 획득하려는 다른 프로세스들을 기아 상태에 빠뜨리고, 결국 Hung Task 워치독을 트리거하게 됩니다.

이를 해결하기 위해 'out' 레이블을 하드웨어 레지스터 정리 코드 아래로 이동시킵니다. i801_check_pre()가 실패하면 iowrite8() 호출을 안전하게 우회하고 pm_runtime 및 mutex와 같은 소프트웨어 잠금만 해제함으로써, 획득하지 않은 자원을 절대 해제하지 않는 규칙을 엄격히 준수합니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-380672

EPSS

0.00000

활동

낮음

출처

Might our Artificial Intelligence support you?

Check our Alexa App!