🇰🇷 한글 설명
Linux 커널의 gpio: shared 구성 요소에서 공유 프록시의 부모 장치가 제거될 때 데드락(교착 상태)이 발생할 수 있는 취약점입니다. 기존의 뮤텍스 보호 범위가 너무 넓어 발생한 문제로, 임계 구역을 최적화하여 이를 해결했습니다.
💡 쉬운 설명
컴퓨터의 입출력 핀을 관리하는 과정에서 특정 장치가 제거될 때 시스템이 서로를 기다리며 멈춰버리는 현상이 발생할 수 있습니다. 이 문제는 관련 코드를 수정하여 장치가 제거될 때 충돌이 일어나지 않도록 개선되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
gpio: shared: fix deadlock on shared proxy's parent removal
Commit 710abda58055 ("gpio: shared: call gpio_chip::of_xlate() if set")
used the mutex embedded in struct gpio_shared_entry to protect the
offset field which now can be modified after assignment. The critical
section however is too wide and introduced a potential deadlock on the
removal of the shared GPIO proxy's parent.
Make the critical section shorter - only protect the offset when it's
being read.
While at it: mention the fact that the entry lock is now also used to
protect against concurrent access to the offset field in the structure's
documentation.
📍 영향받는 시스템
Linux kernel (gpio: shared 관련 모듈을 사용하는 버전)
⚔️ 공격 벡터
공유 GPIO 프록시의 부모 장치를 제거하는 특정 시스템 동작을 유도하여 데드락 유발
🛡️ 대응 방법
커널 패치(Commit 710abda58055 포함 버전)를 적용하여 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 이후의 버전인지 확인