🇰🇷 한글 설명
Linux 커널의 HID ASUS 드라이버에서 asus_report_fixup() 함수가 kmemdup()으로 할당한 버퍼를 해제하지 않아 메모리 누수가 발생했습니다. 이를 devm_kzalloc()으로 변경해 장치 제거 시 자동 해제되도록 수정했으며, 원본 디스크립터 크기만큼만 복사하도록 하여 경미한 범위 초과 읽기 문제도 함께 해결했습니다.
💡 쉬운 설명
리눅스 커널의 ASUS 입력 장치 드라이버가 사용한 메모리를 반환하지 않아 시간이 지날수록 메모리가 낭비되는 문제였습니다. 이제 장치가 분리될 때 메모리가 자동으로 정리되도록 고쳐졌습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
HID: asus: avoid memory leak in asus_report_fixup()
The asus_report_fixup() function was returning a newly allocated
kmemdup()-allocated buffer, but never freeing it. Switch to
devm_kzalloc() to ensure the memory is managed and freed automatically
when the device is removed.
The caller of report_fixup() does not take ownership of the returned
pointer, but it is permitted to return a pointer whose lifetime is at
least that of the input buffer.
Also fix a harmless out-of-bounds read by copying only the original
descriptor size.
📍 영향받는 시스템
메모리 누수 수정이 포함되기 전의 Linux 커널 (HID ASUS 드라이버 사용 ASUS 노트북/입력 장치 환경)
⚔️ 공격 벡터
로컬 사용자가 직접적인 권한 상승 없이 메모리 누수를 유발할 수 있으며, 반복적 사용 시 시스템 리소스 고갈이나 서비스 저하를 일으킬 수 있습니다.
🛡️ 대응 방법
수정이 포함된 최신 Linux 커널 버전으로 업데이트하거나 배포판의 보안 업데이트를 적용하세요.
🔧 검증 코드
커널 버전을 확인한 뒤, 배포판 패키지 changelog나 커널 업데이트 내역에 이 수정(HID: asus: avoid memory leak in asus_report_fixup)이 포함되었는지 대조하여 패치 적용 여부를 판단합니다.
uname -r && (modinfo hid_asus 2>/dev/null | grep -E '^(version|srcversion|filename)')