🇰🇷 한글 설명
Linux 커널의 Bluetooth btrtl 드라이버에서 btrtl_initialize() 함수가 길이가 0인 펌웨어 파일을 로드했을 때 에러 코드가 올바르게 설정되지 않아, 에러 포인터와 NULL 포인터 역참조가 발생할 수 있는 문제입니다. 정적 분석 도구 Smatch에 의해 발견되었습니다.
💡 쉬운 설명
블루투스 칩의 펌웨어 파일이 비어 있을 때 커널이 잘못된 값을 처리하여 시스템이 불안정해질 수 있습니다. 주로 시스템 충돌이나 서비스 중단으로 이어질 수 있는 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: btrtl: Prevent potential NULL dereference
The btrtl_initialize() function checks that rtl_load_file() either
had an error or it loaded a zero length file. However, if it loaded
a zero length file then the error code is not set correctly. It
results in an error pointer vs NULL bug, followed by a NULL pointer
dereference. This was detected by Smatch:
drivers/bluetooth/btrtl.c:592 btrtl_initialize() warn: passing zero to 'ERR_PTR'
📍 영향받는 시스템
Linux 커널의 btrtl(Realtek 블루투스) 드라이버를 사용하는 시스템 (패치 이전 커널 버전)
⚔️ 공격 벡터
공격자가 원격에서 직접 악용하기 어렵고, 비정상적인 펌웨어 파일 로딩 상황에서 발생하는 안정성(NULL 포인터 역참조) 결함입니다.
🛡️ 대응 방법
배포판의 보안 업데이트를 적용하거나 수정이 포함된 최신 Linux 커널로 업그레이드하십시오.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 수정 커밋과 대조하여, 해당 패치가 포함된 버전인지 확인합니다.