🇰🇷 한글 설명
Linux 커널의 핀 컨트롤러 디바이스트리 처리 코드에서 메모리 참조 카운트 누수가 발생하는 취약점입니다. propname 버퍼 할당에 실패할 때 이미 획득한 참조 카운트가 제대로 해제되지 않아 메모리 누수로 이어집니다. pinctrl_dt_free_maps() 함수를 호출하여 참조 카운트를 정확히 제거하는 방식으로 수정됩니다.
💡 쉬운 설명
리눅스 커널의 핀 컨트롤러 코드에서 메모리 정리 과정이 누락되는 버그입니다. 특정 상황에서 할당된 메모리가 제대로 해제되지 않아 시간이 지남에 따라 메모리가 점점 차게 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
pinctrl: devicetree: fix refcount leak in pinctrl_dt_to_map()
If we fail to allocate propname buffer, we need to drop the reference
count we just took. Because the pinctrl_dt_free_maps() includes the
droping operation, here we call it directly.
📍 영향받는 시스템
Linux kernel (pinctrl subsystem이 포함된 모든 버전, 주로 4.x ~ 6.x LTS 커널)
⚔️ 공격 벡터
디바이스 트리 설정 오류 또는 로컬 사용자가 핀 컨트롤러 관련 작업 수행 시 반복 실행으로 인한 메모리 고갈
🛡️ 대응 방법
패치된 커널 업데이트 적용 또는 pinctrl_dt_to_map() 함수에서 실패 처리 시 pinctrl_dt_free_maps() 호출 추가
🔧 검증 코드
명령어 실행 후 pinctrl_dt_free_maps 관련 파일이 출력되면 패치가 적용된 상태입니다. 아무 출력이 없으면 검증 불가능하므로 kernel version 확인 후 보안 공지를 참고하세요.
grep -r 'pinctrl_dt_free_maps' /lib/modules/$(uname -r)/kernel/drivers/pinctrl/ 2>/dev/null | head -1