CVE-2026-53256
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416
Utilización después de liberación
Fecha de publicación:
25/06/2026
Última modificación:
08/07/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind()<br />
<br />
rfcomm_get_sock_by_channel() scans rfcomm_sk_list under the list lock,<br />
but returns the selected listener after dropping that lock without<br />
taking a reference. rfcomm_connect_ind() then locks the listener,<br />
queues a child socket on it, and may notify it after unlocking it.<br />
<br />
The buggy scenario involves two paths, with each column showing the<br />
order within that path:<br />
<br />
rfcomm_connect_ind(): listener close:<br />
1. Find parent in 1. close() enters<br />
rfcomm_get_sock_by_channel() rfcomm_sock_release().<br />
2. Drop rfcomm_sk_list.lock 2. rfcomm_sock_shutdown()<br />
without pinning parent. closes the listener.<br />
3. Call lock_sock(parent) and 3. rfcomm_sock_kill()<br />
bt_accept_enqueue(parent, unlinks and puts parent.<br />
sk, true).<br />
4. Read parent flags and may 4. parent can be freed.<br />
call sk_state_change().<br />
<br />
If close wins the race, parent can be freed before<br />
rfcomm_connect_ind() reaches lock_sock(), bt_accept_enqueue(), or the<br />
deferred-setup callback.<br />
<br />
Take a reference on the listener before leaving rfcomm_sk_list.lock.<br />
After lock_sock() succeeds, recheck that it is still in BT_LISTEN<br />
before queueing a child, cache the deferred-setup bit while the parent<br />
is locked, and drop the reference after the last parent use.<br />
<br />
KASAN reported a slab-use-after-free in lock_sock_nested() from<br />
rfcomm_connect_ind(), with the freeing stack going through<br />
rfcomm_sock_kill() and rfcomm_sock_release().
Impacto
Puntuación base 3.x
8.00
Gravedad 3.x
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.12.1 (incluyendo) | 5.10.259 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.210 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.176 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.143 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.94 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.36 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (incluyendo) | 7.0.13 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:2.6.12:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:2.6.12:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:2.6.12:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:2.6.12:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:2.6.12:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/1f73f92f66251065a5f39b09a47cf05ea14d3107
- https://git.kernel.org/stable/c/43c441edacf953b39517a44f5e5e10a93618b226
- https://git.kernel.org/stable/c/6f4462d12133106460d7c046b95aad2491e3fddf
- https://git.kernel.org/stable/c/8802413ce63175fb522a2bd609fb043a3550c720
- https://git.kernel.org/stable/c/a07d741c077d4e34b16458241a94d29039386553
- https://git.kernel.org/stable/c/b0e33e409715c617e2a20f46f99aa5403a14dfda
- https://git.kernel.org/stable/c/de31973ef00e5aa55496f84cf6a44bb157a34e02
- https://git.kernel.org/stable/c/f5ec76bdbeb80f75ad0be204371afffee0f8fac8



