CVE-2022-49450
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
26/02/2025
Last modified:
01/10/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
rxrpc: Fix listen() setting the bar too high for the prealloc rings<br />
<br />
AF_RXRPC&#39;s listen() handler lets you set the backlog up to 32 (if you bump<br />
up the sysctl), but whilst the preallocation circular buffers have 32 slots<br />
in them, one of them has to be a dead slot because we&#39;re using CIRC_CNT().<br />
<br />
This means that listen(rxrpc_sock, 32) will cause an oops when the socket<br />
is closed because rxrpc_service_prealloc_one() allocated one too many calls<br />
and rxrpc_discard_prealloc() won&#39;t then be able to get rid of them because<br />
it&#39;ll think the ring is empty. rxrpc_release_calls_on_socket() then tries<br />
to abort them, but oopses because call->peer isn&#39;t yet set.<br />
<br />
Fix this by setting the maximum backlog to RXRPC_BACKLOG_MAX - 1 to match<br />
the ring capacity.<br />
<br />
BUG: kernel NULL pointer dereference, address: 0000000000000086<br />
...<br />
RIP: 0010:rxrpc_send_abort_packet+0x73/0x240 [rxrpc]<br />
Call Trace:<br />
<br />
? __wake_up_common_lock+0x7a/0x90<br />
? rxrpc_notify_socket+0x8e/0x140 [rxrpc]<br />
? rxrpc_abort_call+0x4c/0x60 [rxrpc]<br />
rxrpc_release_calls_on_socket+0x107/0x1a0 [rxrpc]<br />
rxrpc_release+0xc9/0x1c0 [rxrpc]<br />
__sock_release+0x37/0xa0<br />
sock_close+0x11/0x20<br />
__fput+0x89/0x240<br />
task_work_run+0x59/0x90<br />
do_exit+0x319/0xaa0
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.9 (including) | 4.9.318 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (including) | 4.14.283 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (including) | 4.19.247 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.198 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.121 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.46 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 5.17.14 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.18 (including) | 5.18.3 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/369de57492c4f1a42563c5a3bd365822ca3bfc79
- https://git.kernel.org/stable/c/4a3a78b7918bdd723d8c7c9786522ca969bffcc4
- https://git.kernel.org/stable/c/5b4826657d36c218e9f08e8d3223b0edce3de88f
- https://git.kernel.org/stable/c/616f76498d5ddf26b997caf64a95cda3c8a55533
- https://git.kernel.org/stable/c/61fb38cfbb1d54d3dafd0c25752f684b3cd00b32
- https://git.kernel.org/stable/c/88e22159750b0d55793302eeed8ee603f5c1a95c
- https://git.kernel.org/stable/c/91b34bf0409f43bb60453bab23c5beadd726d022
- https://git.kernel.org/stable/c/b3a9b227d5e7467b8518160ff034ea22bb9de573
- https://git.kernel.org/stable/c/e198f1930050e3115c80b67d9249f80f98a27c67



