🇰🇷 한글 설명
Linux 커널 devlink 모듈에서 xa_alloc_cyclic() 함수의 오류 처리가 잘못되어 있었습니다. 래핑 시 1을 반환하면 ERR_PTR(1)이 반환되어 IS_ERR() 검사를 통과하고, 할당되지 않은 포인터를 역참조할 수 있습니다. 반환값이 0 미만인지 검사하도록 수정되었습니다.
💡 쉬운 설명
리눅스 커널의 장치 관리 기능에서 오류 확인이 잘못되어 있었습니다. 이로 인해 아직 만들어지지 않은 메모리 주소를 잘못 사용할 수 있는 문제가 있었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
devlink: fix xa_alloc_cyclic() error handling
In case of returning 1 from xa_alloc_cyclic() (wrapping) ERR_PTR(1) will
be returned, which will cause IS_ERR() to be false. Which can lead to
dereference not allocated pointer (rel).
Fix it by checking if err is lower than zero.
This wasn't found in real usecase, only noticed. Credit to Pierre.
📍 영향받는 시스템
수정 이전의 Linux 커널 (devlink 기능이 포함된 버전)
⚔️ 공격 벡터
실제 악용 사례는 확인되지 않았으며, 잘못된 포인터 역참조로 인한 비정상 동작 또는 커널 불안정이 발생할 수 있는 결함입니다.
🛡️ 대응 방법
커널을 해당 취약점이 수정된 최신 안정 버전으로 업데이트하세요.
🔧 검증 코드
출력된 커널 버전을 배포판의 보안 공지 또는 리눅스 커널 stable 저장소의 수정 버전과 비교하여, 패치가 포함된 버전인지 확인합니다.