🇰🇷 한글 설명
Linux 커널의 SPI 버스에서 드라이버가 프로브될 때 장치 잠금(device lock) 없이 driver_override 필드에 접근하여 Use-After-Free(UAF) 취약점이 발생할 수 있습니다. 이를 해결하기 위해 내부적으로 적절한 잠금을 처리하는 generic driver_override 인프라를 사용하도록 수정되었습니다.
💡 쉬운 설명
컴퓨터 부품을 제어하는 소프트웨어가 데이터를 읽는 과정에서 보안 규칙을 지키지 않아 메모리 오류가 발생할 수 있는 문제입니다. 이 오류를 악용하면 시스템이 불안정해지거나 해커가 권한을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
spi: use generic driver_override infrastructure
When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.
Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.
Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]
Also note that we do not enable the driver_override feature of struct
bus_type, as SPI - in contrast to most other buses - passes "" to
sysfs_emit() when the driver_override pointer is NULL. Thus, printing
"\n" instead of "(null)\n".
📍 영향받는 시스템
Linux Kernel (SPI 버스 관련 구성 요소가 포함된 버전)
⚔️ 공격 벡터
특정 조건에서 드라이버가 로드될 때 발생하는 메모리 관리 오류를 이용한 로컬 공격
🛡️ 대응 방법
SPI 드라이버 인프라가 개선된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 최신 패치 버전인지 확인합니다.