Linux 커널에서는 다음 취약점이 해결되었습니다. 블루투스: hci_sync: hci_le_big_create_sync의 스택 버퍼 오버플로 수정 hci_le_big_create_sync()는 DEFINE_FLEX를 사용하여 0x11을 위한 공간이 있는 스택의 struct hci_cp_le_big_create_sync (17) BIS 항목. 그러나 conn->num_bis는 최대 HCI_MAX_ISO_BIS(31)를 보유할 수 있습니다. 항목 — 호출자의 ISO_MAX_NUM_BIS(0x1f)에 대해 검증되었습니다. hci_conn_big_create_sync(). conn->num_bis가 18에서 31 사이인 경우, 복사하는 memcpy
Linux 커널에서는 다음 취약점이 해결되었습니다.
블루투스: hci_sync: hci_le_big_create_sync의 스택 버퍼 오버플로 수정
hci_le_big_create_sync()는 DEFINE_FLEX를 사용하여 0x11을 위한 공간이 있는 스택의 struct hci_cp_le_big_create_sync (17) BIS 항목. 그러나 conn->num_bis는 최대 HCI_MAX_ISO_BIS(31)를 보유할 수 있습니다. 항목 — 호출자의 ISO_MAX_NUM_BIS(0x1f)에 대해 검증되었습니다. hci_conn_big_create_sync(). conn->num_bis가 18에서 31 사이인 경우, conn->bis를 cp->bis로 복사하는 memcpy는 최대 14바이트를 씁니다. 스택 버퍼를 지나서 인접한 스택 메모리가 손상됩니다.
이는 간단하게 재현 가능합니다. ISO 소켓을 다음과 바인딩합니다. bc_num_bis = ISO_MAX_NUM_BIS (31) 및 listening() 호출은 결국 HCI 명령에서 hci_le_big_create_sync()를 트리거합니다. 동기화 워커로 인해 KASAN이 감지할 수 있는 스택 범위를 벗어난 쓰기가 발생합니다.
버그: KASAN: hci_le_big_create_sync+0x256/0x3b0의 스택 범위를 벗어났습니다. kworker/u9:0/71 작업으로 addr ffffc90000487b48에 크기 31 쓰기
DEFINE_FLEX 개수를 잘못된 0x11에서 다음으로 변경하여 이 문제를 해결하세요. HCI_MAX_ISO_BIS는 BIS 항목의 최대 개수와 일치합니다. conn->bis는 실제로 휴대할 수 있습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 78.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 78.00 |
VPI 공식 vpi-v1 기준