Linux 커널에서는 다음 취약점이 해결되었습니다. Bluetooth: L2CAP: chan 타이머를 사용하여 cleanup_listen()에서 채널을 닫습니다. l2cap_chan_close()는 conn->chan_l에서 채널을 제거합니다. conn->lock 하에서 수행되어야 합니다. cleanup_listen()은 다음에서 실행됩니다. 상위 sk_lock이므로 conn->lock을 획득하면 conn->lock -> chan->lock -> sk_lock 순서를 확립했습니다. l2cap_chan_close()를 직접 호출하는 대신 l2cap_chan_timeout 지연 0으로 채널 닫기 비동기
Linux 커널에서는 다음 취약점이 해결되었습니다.
Bluetooth: L2CAP: chan 타이머를 사용하여 cleanup_listen()에서 채널을 닫습니다.
l2cap_chan_close()는 conn->chan_l에서 채널을 제거합니다. conn->lock 하에서 수행되어야 합니다. cleanup_listen()은 다음에서 실행됩니다. 상위 sk_lock이므로 conn->lock을 획득하면 conn->lock -> chan->lock -> sk_lock 순서를 확립했습니다.
l2cap_chan_close()를 직접 호출하는 대신 l2cap_chan_timeout 지연 0으로 채널 닫기 비동기적으로. 시간 초과 처리기는 이미 conn->lock을 획득했습니다. 올바른 순서로 chan->lock을 실행하세요.
타이머는 chan->conn이 여전히 설정되어 있을 때만 활성화됩니다. 이미 NULL, l2cap_conn_del()이 이미 이 채널을 처리했습니다. (l2cap_chan_del + l2cap_sock_teardown_cb + l2cap_sock_close_cb), 그래서 더 이상 할 일이 없습니다. l2cap_conn_del()이 경쟁하는 경우 타이머가 활성화된 후 __clear_chan_timer() 내부 l2cap_chan_del()은 이를 취소합니다. 타이머가 이미 실행된 경우 chan->conn이 지워졌으므로 핸들러는 무해하게 반환됩니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 88.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 88.00 |
VPI 공식 vpi-v1 기준