🇰🇷 한글 설명
Linux 커널의 USB ULPI 인터페이스 등록 함수 ulpi_register_interface()에서, device_register() 실패 시 put_device()가 이미 메모리를 해제하는데 에러 경로에서 kfree()를 한 번 더 호출하여 이중 해제(double free)가 발생합니다. 이 결함은 메모리 손상과 커널 불안정을 유발할 수 있으며, 수정으로 cleanup을 put_device()에 일임하도록 변경되었습니다.
💡 쉬운 설명
컴퓨터의 USB 관련 장치 등록 과정에서 같은 메모리를 두 번 정리하려다 오류가 생기는 문제입니다. 이로 인해 시스템이 불안정해지거나 충돌할 수 있어 커널 업데이트로 고쳐야 합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: ulpi: fix double free in ulpi_register_interface() error path
When device_register() fails, ulpi_register() calls put_device() on
ulpi->dev.
The device release callback ulpi_dev_release() drops the OF node
reference and frees ulpi, but the current error path in
ulpi_register_interface() then calls kfree(ulpi) again, causing a
double free.
Let put_device() handle the cleanup through ulpi_dev_release() and
avoid freeing ulpi again in ulpi_register_interface().
📍 영향받는 시스템
수정 이전의 Linux 커널 (USB ULPI 드라이버 포함 빌드)
⚔️ 공격 벡터
로컬 사용자가 장치 등록 실패를 유도하는 방식으로 커널 메모리 손상을 일으킬 가능성이 있음 (세부 악용 조건은 확인되지 않음)
🛡️ 대응 방법
배포판 제공 최신 Linux 커널 보안 업데이트를 적용하고 재부팅하기
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지에서 이 CVE 수정이 포함된 패치 버전과 비교하여, 같거나 이후 버전이면 수정된 것입니다.