CVE-2026-99010 in Linux
요약
\~에 의해 VulDB • 2026. 10. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
블루투스: RFCOMM: DLC에 소유자가 없을 때 skb 해제하기
rfcomm_recv_data()는 skb를 d->data_ready()로 전달하고 0을 반환하지만 이를 해제하지 않습니다. 따라서 그 시점부터 콜백이 skb의 소유권을 가집니다. tty 구현체는 DLC가 장치에서 분리될 때 이를 해제합니다:
```c static void rfcomm_dev_data_ready(struct rfcomm_dlc *dlc, struct sk_buff *skb) {
struct rfcomm_dev *dev = dlc->owner;
if (!dev) {
kfree_skb(skb); return; } ```
소켓 구현체는 해제하지 않고 반환하며, skb가 누수(leak)됩니다.
연결된 DLC는 소유자가 없을 수 있습니다: rfcomm_sock_destruct()은 d->owner를 지우지만, DLC 자체는 닫힐 때까지 세션에 남아 있습니다. 그 기간 동안 도착하는 데이터 프레임들은 rfcomm_recv_data()에서 여전히 d->state == BT_CONNECTED 상태를 발견하며 콜백으로 전달되어 각기 하나의 skb가 누수됩니다.
이 누수는 스스로 중단되지 않습니다. 원격 측에서는 RFCOMM_RX_THROTTLED 플래그가 설정될 때만 크레딧을 고갈시키며, 소켓의 경우 이를 설정하는 유일한 곳은 rfcomm_sk_data_ready() 자체이며, 이는 반환문 아래에 위치합니다. rfcomm_process_dlcs()는 계속 크레딧을 부여하므로 원격 측이 계속해서 데이터를 전송하고 누수가 지속되어 증가합니다.
tty 쪽에서 수행하듯이 skb를 해제하십시오.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.