Linux 커널에서는 다음 취약점이 해결되었습니다. Bluetooth: hci_event: 깨우기 이유 저장소를 검증된 이벤트 핸들러로 이동 hci_store_wake_reason()은 hci_event_packet()에서 즉시 호출됩니다. HCI 이벤트 헤더를 제거한 후 hci_event_func() 이전 hci_ev_table에서 이벤트별 최소 페이로드 길이를 적용합니다. 이는 짧은 HCI 이벤트 프레임이 경계 전에 bacpy()에 도달할 수 있음을 의미합니다. 점검이 실행됩니다. skb 구문 분석 및 이벤트별 길이 확인을 복제하는 대신
Linux 커널에서는 다음 취약점이 해결되었습니다.
Bluetooth: hci_event: 깨우기 이유 저장소를 검증된 이벤트 핸들러로 이동
hci_store_wake_reason()은 hci_event_packet()에서 즉시 호출됩니다. HCI 이벤트 헤더를 제거한 후 hci_event_func() 이전 hci_ev_table에서 이벤트별 최소 페이로드 길이를 적용합니다. 이는 짧은 HCI 이벤트 프레임이 경계 전에 bacpy()에 도달할 수 있음을 의미합니다. 점검이 실행됩니다.
내부에서 skb 구문 분석 및 이벤트별 길이 확인을 복제하는 대신 hci_store_wake_reason(), 깨우기 주소 저장소를 개별로 이동합니다. 기존 이벤트 길이 유효성 검사 이후의 이벤트 핸들러는 성공했습니다. hci_store_wake_reason()을 작은 도우미로 변환하여 호출자가 hci_dev_lock()을 보유하는 동안 이미 검증된 bdaddr을 저장합니다. NULL 주소를 사용하여 hci_event_func() 다음에 동일한 도우미를 사용하여 존재하지 않는 경우 기존 예상치 못한 절전 모드 해제 의미 체계를 유지합니다. 검증된 이벤트 핸들러는 깨우기 주소를 기록합니다.
도우미에 __must_hold(&hdev->lock) 주석을 달고 추가하세요. lockdep_assert_held(&hdev->lock) 향후 호출 경로가 잠금을 유지하도록 합니다. 명시적인 계약.
hci_conn_request_evt(), hci_conn_complete_evt()에서 도우미를 호출합니다. hci_sync_conn_complete_evt(), le_conn_complete_evt(), hci_le_adv_report_evt(), hci_le_ext_adv_report_evt(), hci_le_direct_adv_report_evt(), hci_le_pa_sync_founded_evt() 및 hci_le_past_received_evt().
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 81.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 81.00 |
VPI 공식 vpi-v1 기준