🇰🇷 한글 설명
Linux 커널의 Bluetooth MGMT 모듈에서 Load Long Term Keys 처리 시 사용자가 제공한 enc_size 값을 검증하지 않아, 16바이트 키 버퍼보다 큰 값이 들어오면 LE LTK 응답 생성 과정의 고정 크기 스택 버퍼가 오버플로우될 수 있습니다. 이번 패치는 LTK 레코드 검증 단계에서 과도한 enc_size를 거부하여 잘못된 키가 저장 상태에 들어가지 않도록 합니다.
💡 쉬운 설명
블루투스 기기의 암호화 키 정보 중 하나가 허용 크기를 넘어도 검사되지 않아 메모리가 넘칠 수 있었습니다. 이번 수정으로 잘못된 크기의 키 정보는 처음부터 거부됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: MGMT: validate LTK enc_size on load
Load Long Term Keys stores the user-provided enc_size and later uses
it to size fixed-size stack operations when replying to LE LTK
requests. An enc_size larger than the 16-byte key buffer can therefore
overflow the reply stack buffer.
Reject oversized enc_size values while validating the management LTK
record so invalid keys never reach the stored key state.
📍 영향받는 시스템
Bluetooth MGMT 기능을 포함한 수정 이전의 Linux 커널 버전 (배포판별 패치 버전 상이)
⚔️ 공격 벡터
로컬 또는 블루투스 관리 인터페이스를 통해 조작된 LTK 레코드를 로드하여 enc_size를 16바이트보다 크게 설정, 스택 버퍼 오버플로우 유발
🛡️ 대응 방법
배포판 보안 업데이트를 적용하여 커널을 패치된 버전으로 업그레이드하고 재부팅
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지에서 확인한 패치 버전과 비교하여 같거나 높으면 수정된 것이고, 낮으면 업데이트가 필요합니다.
uname -r && (dpkg -l linux-image-$(uname -r) 2>/dev/null || rpm -q kernel 2>/dev/null) | head -5