🇰🇷 한글 설명
리눅스 커널의 Bluetooth btintel 드라이버에서 EFI 변수로부터 dsbr 데이터를 읽을 때 크기를 검증하지 않아 스택 버퍼 오버플로우가 발생할 수 있었습니다. 수정으로 구조체 크기를 먼저 기준으로 삼고 최종 결과 크기가 기대값과 다르면 실패하도록 변경되었습니다.
💡 쉬운 설명
블루투스 칩을 초기화하는 커널 코드가 펌웨어 설정 데이터의 크기를 확인하지 않아, 데이터가 너무 크면 메모리 영역을 넘어 덮어쓸 수 있었습니다. 이제는 예상 크기와 맞지 않으면 작업을 중단하도록 고쳐졌습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: btintel: Check dsbr size from EFI variable
Since the size of struct btintel_dsbr is already known, we can just
start there instead of querying the EFI variable size. If the final
result doesn't match what we expect also fail. This fixes a stack buffer
overflow when the EFI variable is larger than struct btintel_dsbr.
📍 영향받는 시스템
Intel 블루투스 칩을 사용하고 해당 수정이 적용되지 않은 Linux 커널 버전 (btintel 드라이버 사용 시스템)
⚔️ 공격 벡터
공격자가 EFI 변수 데이터를 조작할 수 있는 상황(예: 높은 권한 확보 후)에서 과도하게 큰 값을 설정해 커널 스택 오버플로우를 유발하는 방식
🛡️ 대응 방법
커널을 CVE-2025-38315 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅
🔧 검증 코드
출력된 커널 버전이 배포판의 CVE 수정 포함 버전 이상이면 패치된 것이며, btintel 모듈이 없으면 해당 드라이버는 영향 대상이 아닙니다.
uname -r && (lsmod | grep -i btintel || echo 'btintel 모듈 미로드')