Bug 2266423 (CVE-2021-46915) - CVE-2021-46915 kernel: netfilter: divide error in nft_limit_init
Summary: CVE-2021-46915 kernel: netfilter: divide error in nft_limit_init
Keywords:
Status: NEW
Alias: CVE-2021-46915
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 2266424
Blocks: 2266369
TreeView+ depends on / blocked
 
Reported: 2024-02-27 19:21 UTC by Rohit Keshri
Modified: 2024-06-09 17:03 UTC (History)
51 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2024:2680 0 None None None 2024-05-02 16:01:44 UTC
Red Hat Product Errata RHSA-2024:2006 0 None None None 2024-04-23 16:39:52 UTC
Red Hat Product Errata RHSA-2024:2008 0 None None None 2024-04-23 16:28:23 UTC
Red Hat Product Errata RHSA-2024:2582 0 None None None 2024-04-30 14:59:46 UTC
Red Hat Product Errata RHSA-2024:2585 0 None None None 2024-04-30 14:46:10 UTC

Description Rohit Keshri 2024-02-27 19:21:24 UTC
In the Linux kernel, the following vulnerability has been resolved:

netfilter: nft_limit: avoid possible divide error in nft_limit_init

div_u64() divides u64 by u32.

nft_limit_init() wants to divide u64 by u64, use the appropriate
math function (div64_u64)

divide error: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 8390 Comm: syz-executor188 Not tainted 5.12.0-rc4-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:div_u64_rem include/linux/math64.h:28 [inline]
RIP: 0010:div_u64 include/linux/math64.h:127 [inline]
RIP: 0010:nft_limit_init+0x2a2/0x5e0 net/netfilter/nft_limit.c:85
Code: ef 4c 01 eb 41 0f 92 c7 48 89 de e8 38 a5 22 fa 4d 85 ff 0f 85 97 02 00 00 e8 ea 9e 22 fa 4c 0f af f3 45 89 ed 31 d2 4c 89 f0 <49> f7 f5 49 89 c6 e8 d3 9e 22 fa 48 8d 7d 48 48 b8 00 00 00 00 00
RSP: 0018:ffffc90009447198 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000200000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff875152e6 RDI: 0000000000000003
RBP: ffff888020f80908 R08: 0000200000000000 R09: 0000000000000000
R10: ffffffff875152d8 R11: 0000000000000000 R12: ffffc90009447270
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
FS:  000000000097a300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000200001c4 CR3: 0000000026a52000 CR4: 00000000001506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 nf_tables_newexpr net/netfilter/nf_tables_api.c:2675 [inline]
 nft_expr_init+0x145/0x2d0 net/netfilter/nf_tables_api.c:2713
 nft_set_elem_expr_alloc+0x27/0x280 net/netfilter/nf_tables_api.c:5160
 nf_tables_newset+0x1997/0x3150 net/netfilter/nf_tables_api.c:4321
 nfnetlink_rcv_batch+0x85a/0x21b0 net/netfilter/nfnetlink.c:456
 nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:580 [inline]
 nfnetlink_rcv+0x3af/0x420 net/netfilter/nfnetlink.c:598
 netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline]
 netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338
 netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927
 sock_sendmsg_nosec net/socket.c:654 [inline]
 sock_sendmsg+0xcf/0x120 net/socket.c:674
 ____sys_sendmsg+0x6e8/0x810 net/socket.c:2350
 ___sys_sendmsg+0xf3/0x170 net/socket.c:2404
 __sys_sendmsg+0xe5/0x1b0 net/socket.c:2433
 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xae

https://git.kernel.org/stable/c/01fb1626b620cb37a65ad08e0f626489e8f042ef
https://git.kernel.org/stable/c/1bb3ee4259936cc3b2d80a4a480bbb4868575071
https://git.kernel.org/stable/c/9065ccb9ec92c5120e7e97958397ebdb454f23d6
https://git.kernel.org/stable/c/b895bdf5d643b6feb7c60856326dd4feb6981560
https://git.kernel.org/stable/c/dc1732baa9da5b68621586bf8636ebbc27dc62d2
https://git.kernel.org/stable/c/fadd3c4afdf3d4c21f4d138502f8b76334987e26

Comment 1 Rohit Keshri 2024-02-27 19:24:01 UTC
Created kernel tracking bugs for this issue:

Affects: fedora-all [bug 2266424]

Comment 3 Justin M. Forbes 2024-02-27 23:07:40 UTC
This was fixed for Fedora with the 5.11.16 stable kernel updates.

Comment 8 errata-xmlrpc 2024-04-23 16:28:20 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.2 Telecommunications Update Service

Via RHSA-2024:2008 https://access.redhat.com/errata/RHSA-2024:2008

Comment 9 errata-xmlrpc 2024-04-23 16:39:49 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.2 Advanced Update Support
  Red Hat Enterprise Linux 8.2 Telecommunications Update Service
  Red Hat Enterprise Linux 8.2 Update Services for SAP Solutions

Via RHSA-2024:2006 https://access.redhat.com/errata/RHSA-2024:2006

Comment 10 errata-xmlrpc 2024-04-30 14:46:07 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.4 Advanced Mission Critical Update Support
  Red Hat Enterprise Linux 8.4 Telecommunications Update Service
  Red Hat Enterprise Linux 8.4 Update Services for SAP Solutions

Via RHSA-2024:2585 https://access.redhat.com/errata/RHSA-2024:2585

Comment 11 errata-xmlrpc 2024-04-30 14:59:43 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.4 Advanced Mission Critical Update Support
  Red Hat Enterprise Linux 8.4 Telecommunications Update Service
  Red Hat Enterprise Linux 8.4 Update Services for SAP Solutions

Via RHSA-2024:2582 https://access.redhat.com/errata/RHSA-2024:2582

Comment 12 Alex 2024-06-09 17:03:15 UTC
The result of automatic check (that is developed by Alexander Larkin) for this CVE-2021-46915 is: CHECK	Maybe valid. Check manually. with impact LOW (that is an approximation based on flags REMOTE KASAN INIT NETFILTER  ; these flags parsed automatically based on patch data). Such automatic check happens only for Low/Moderates (and only when not from reporter, but parsing already existing CVE). Highs always checked manually (I check it myself and then we check it again in Remediation team). In rare cases some of the Moderates could be increased to High later.


Note You need to log in before you can comment on or make changes to this bug.