[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025032711-CVE-2023-52999-e28e@gregkh>
Date: Thu, 27 Mar 2025 17:43:46 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: CVE-2023-52999: net: fix UaF in netns ops registration error path
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
net: fix UaF in netns ops registration error path
If net_assign_generic() fails, the current error path in ops_init() tries
to clear the gen pointer slot. Anyway, in such error path, the gen pointer
itself has not been modified yet, and the existing and accessed one is
smaller than the accessed index, causing an out-of-bounds error:
BUG: KASAN: slab-out-of-bounds in ops_init+0x2de/0x320
Write of size 8 at addr ffff888109124978 by task modprobe/1018
CPU: 2 PID: 1018 Comm: modprobe Not tainted 6.2.0-rc2.mptcp_ae5ac65fbed5+ #1641
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.1-2.fc37 04/01/2014
Call Trace:
<TASK>
dump_stack_lvl+0x6a/0x9f
print_address_description.constprop.0+0x86/0x2b5
print_report+0x11b/0x1fb
kasan_report+0x87/0xc0
ops_init+0x2de/0x320
register_pernet_operations+0x2e4/0x750
register_pernet_subsys+0x24/0x40
tcf_register_action+0x9f/0x560
do_one_initcall+0xf9/0x570
do_init_module+0x190/0x650
load_module+0x1fa5/0x23c0
__do_sys_finit_module+0x10d/0x1b0
do_syscall_64+0x58/0x80
entry_SYSCALL_64_after_hwframe+0x72/0xdc
RIP: 0033:0x7f42518f778d
Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48
89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff
ff 73 01 c3 48 8b 0d cb 56 2c 00 f7 d8 64 89 01 48
RSP: 002b:00007fff96869688 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
RAX: ffffffffffffffda RBX: 00005568ef7f7c90 RCX: 00007f42518f778d
RDX: 0000000000000000 RSI: 00005568ef41d796 RDI: 0000000000000003
RBP: 00005568ef41d796 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000003 R11: 0000000000000246 R12: 0000000000000000
R13: 00005568ef7f7d30 R14: 0000000000040000 R15: 0000000000000000
</TASK>
This change addresses the issue by skipping the gen pointer
de-reference in the mentioned error-path.
Found by code inspection and verified with explicit error injection
on a kasan-enabled kernel.
The Linux kernel CVE team has assigned CVE-2023-52999 to this issue.
Affected and fixed versions
===========================
Issue introduced in 4.19.264 with commit 5a2ea549be94924364f6911227d99be86e8cf34a and fixed in 4.19.272 with commit ad0dfe9bcf0d78e699c7efb64c90ed062dc48bea
Issue introduced in 5.4.223 with commit 97ad240fd9aa9214497d14af2b91608e20856cac and fixed in 5.4.231 with commit ddd49cbbd4c1ceb38032018b589b44208e54f55e
Issue introduced in 5.10.153 with commit c3edc6e808209aa705185f732e682a370981ced1 and fixed in 5.10.166 with commit d4c008f3b7f7d4ffd311eb2dae5e75b3cbddacd0
Issue introduced in 5.15.77 with commit a1e18acb0246bfb001b08b8b1b830b5ec92a0f13 and fixed in 5.15.91 with commit 66689a72ba73575e76d4f6a8748d3fa2690ec1c4
Issue introduced in 6.1 with commit d266935ac43d57586e311a087510fe6a084af742 and fixed in 6.1.9 with commit 12075708f2e77ee6a9f8bb2cf512c38be3099794
Issue introduced in 6.1 with commit d266935ac43d57586e311a087510fe6a084af742 and fixed in 6.2 with commit 71ab9c3e2253619136c31c89dbb2c69305cc89b1
Issue introduced in 6.0.7 with commit 4a4df5e78712de39d6f90d6a64b5eb48dca03bd5
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2023-52999
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
net/core/net_namespace.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/ad0dfe9bcf0d78e699c7efb64c90ed062dc48bea
https://git.kernel.org/stable/c/ddd49cbbd4c1ceb38032018b589b44208e54f55e
https://git.kernel.org/stable/c/d4c008f3b7f7d4ffd311eb2dae5e75b3cbddacd0
https://git.kernel.org/stable/c/66689a72ba73575e76d4f6a8748d3fa2690ec1c4
https://git.kernel.org/stable/c/12075708f2e77ee6a9f8bb2cf512c38be3099794
https://git.kernel.org/stable/c/71ab9c3e2253619136c31c89dbb2c69305cc89b1
Powered by blists - more mailing lists