🇰🇷 한글 설명
Linux 커널의 gpiolib에서 gpiod_set_array_value_complex() 함수의 오류 처리 경로에 메모리 누수 문제가 있습니다. gpiochip_set_multiple() 호출 실패 시 반환 코드를 먼저 확인하여 할당된 비트맵 해제 단계를 건너뛰는 문제이며, 수정으로 반환 코드 검사를 bitmap_free() 블록 이후로 지연시켰습니다.
💡 쉬운 설명
GPIO 장치를 제어하는 커널 코드에서 오류가 발생하면 사용하던 메모리를 정리하지 못하는 결함입니다. 발생 가능성은 낮지만 장시간 운영 시 메모리가 조금씩 낭비될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
gpiolib: fix memory leak in gpiod_set_array_value_complex() on error paths
A drive-by review by Sashiko reports that, after a failed call to
gpiochip_set_multiple(), gpiod_set_array_value() returns abruptly,
bypassing the freeing of possibly alloced bitmaps, potentially leaking
memory. It is an unlikely error path, but is possible.
Defer the return code check until after the bitmap_free() block.
📍 영향받는 시스템
패치가 적용되지 않은 Linux 커널 버전 (gpiolib을 사용하는 시스템 전반)
⚔️ 공격 벡터
외부 공격자가 직접 악용하기 어려운 오류 경로 기반 메모리 누수로, 특정 실패 조건에서 발생합니다.
🛡️ 대응 방법
커널을 해당 취약점이 수정된 최신 안정 버전으로 업데이트하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 저장소의 수정 커밋 포함 여부와 비교하여, 수정된 버전 이상이면 패치가 적용된 것입니다.