PT-2026-121987
CVE-2026-99010
·
تاريخ النشر
2026-10-23
·
تاريخ التحديث
2026-10-23
الوصف من
الدرجة
N/A
غير متوفرلا تتوفر حاليًا تقييمات أو مقاييس للخطورة. سنحدّث المعلومات المقابلة في الصفحة فور توفرها.
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: RFCOMM: free the skb when the DLC has no owner
rfcomm recv data() hands the skb to d->data ready() and returns 0
without freeing it, so the callback owns the skb from that point on.
The tty implementation frees it when the DLC has been detached from its
device:
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;
}The socket implementation returns without freeing it, and the skb is
leaked.
A connected DLC can have no owner: rfcomm sock destruct() clears
d->owner, while the DLC itself stays on the session until it is closed.
Data frames that arrive in that window still find d->state ==
BT CONNECTED in rfcomm recv data() and are handed to the callback, one
leaked skb each.
The leak does not stop on its own either. The remote runs out of
credits only once RFCOMM RX THROTTLED is set, and for a socket the only
place that sets it is rfcomm sk data ready() itself, below the return.
rfcomm process dlcs() keeps granting credits, so the remote keeps
sending and the leak keeps growing.
Free the skb, as the tty side does.
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾