CVE-2022-49456
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
26/02/2025
Last modified:
22/10/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
bonding: fix missed rcu protection<br />
<br />
When removing the rcu_read_lock in bond_ethtool_get_ts_info() as<br />
discussed [1], I didn&#39;t notice it could be called via setsockopt,<br />
which doesn&#39;t hold rcu lock, as syzbot pointed:<br />
<br />
stack backtrace:<br />
CPU: 0 PID: 3599 Comm: syz-executor317 Not tainted 5.18.0-rc5-syzkaller-01392-g01f4685797a5 #0<br />
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011<br />
Call Trace:<br />
<br />
__dump_stack lib/dump_stack.c:88 [inline]<br />
dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106<br />
bond_option_active_slave_get_rcu include/net/bonding.h:353 [inline]<br />
bond_ethtool_get_ts_info+0x32c/0x3a0 drivers/net/bonding/bond_main.c:5595<br />
__ethtool_get_ts_info+0x173/0x240 net/ethtool/common.c:554<br />
ethtool_get_phc_vclocks+0x99/0x110 net/ethtool/common.c:568<br />
sock_timestamping_bind_phc net/core/sock.c:869 [inline]<br />
sock_set_timestamping+0x3a3/0x7e0 net/core/sock.c:916<br />
sock_setsockopt+0x543/0x2ec0 net/core/sock.c:1221<br />
__sys_setsockopt+0x55e/0x6a0 net/socket.c:2223<br />
__do_sys_setsockopt net/socket.c:2238 [inline]<br />
__se_sys_setsockopt net/socket.c:2235 [inline]<br />
__x64_sys_setsockopt+0xba/0x150 net/socket.c:2235<br />
do_syscall_x64 arch/x86/entry/common.c:50 [inline]<br />
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80<br />
entry_SYSCALL_64_after_hwframe+0x44/0xae<br />
RIP: 0033:0x7f8902c8eb39<br />
<br />
Fix it by adding rcu_read_lock and take a ref on the real_dev.<br />
Since dev_hold() and dev_put() can take NULL these days, we can<br />
skip checking if real_dev exist.<br />
<br />
[1] https://lore.kernel.org/netdev/27565.1642742439@famine/
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:*:*:*:*:*:*:*:* | 5.17.1 (including) | 5.17.14 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.18 (including) | 5.18.3 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.17:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.17:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.17:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.17:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.17:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.17:rc7:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.17:rc8:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



