Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2021-47448— mptcp: fix possible stall on recvmsg()

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于如果调用者提供了 MSG_WAITALL,接收队列中存在的数据就不满足请求,并且对等方不再接收到更多数据,recvmsg函数可能会进入无限循环。

CVSS 7.5 · High EPSS 0.48% · P40

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 7a6a6cbc3e592e339ad23e4e8ede9a3f6160bda8< 1a4554e94f0deff9fc1dc5addf93fa579cc29711 affected
7a6a6cbc3e592e339ad23e4e8ede9a3f6160bda8< 612f71d7328c14369924384ad2170aae2a6abd92 affected
5.6 affected
< 5.6 unaffected
5.14.14≤ 5.14.* unaffected
5.15≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2021-47448

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
mptcp: fix possible stall on recvmsg()
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: mptcp: fix possible stall on recvmsg() recvmsg() can enter an infinite loop if the caller provides the MSG_WAITALL, the data present in the receive queue is not sufficient to fulfill the request, and no more data is received by the peer. When the above happens, mptcp_wait_data() will always return with no wait, as the MPTCP_DATA_READY flag checked by such function is set and never cleared in such code path. Leveraging the above syzbot was able to trigger an RCU stall: rcu: INFO: rcu_preempt self-detected stall on CPU rcu: 0-...!: (10499 ticks this GP) idle=0af/1/0x4000000000000000 softirq=10678/10678 fqs=1 (t=10500 jiffies g=13089 q=109) rcu: rcu_preempt kthread starved for 10497 jiffies! g13089 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=1 rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior. rcu: RCU grace-period kthread stack dump: task:rcu_preempt state:R running task stack:28696 pid: 14 ppid: 2 flags:0x00004000 Call Trace: context_switch kernel/sched/core.c:4955 [inline] __schedule+0x940/0x26f0 kernel/sched/core.c:6236 schedule+0xd3/0x270 kernel/sched/core.c:6315 schedule_timeout+0x14a/0x2a0 kernel/time/timer.c:1881 rcu_gp_fqs_loop+0x186/0x810 kernel/rcu/tree.c:1955 rcu_gp_kthread+0x1de/0x320 kernel/rcu/tree.c:2128 kthread+0x405/0x4f0 kernel/kthread.c:327 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 rcu: Stack dump where RCU GP kthread last ran: Sending NMI from CPU 0 to CPUs 1: NMI backtrace for cpu 1 CPU: 1 PID: 8510 Comm: syz-executor827 Not tainted 5.15.0-rc2-next-20210920-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:bytes_is_nonzero mm/kasan/generic.c:84 [inline] RIP: 0010:memory_is_nonzero mm/kasan/generic.c:102 [inline] RIP: 0010:memory_is_poisoned_n mm/kasan/generic.c:128 [inline] RIP: 0010:memory_is_poisoned mm/kasan/generic.c:159 [inline] RIP: 0010:check_region_inline mm/kasan/generic.c:180 [inline] RIP: 0010:kasan_check_range+0xc8/0x180 mm/kasan/generic.c:189 Code: 38 00 74 ed 48 8d 50 08 eb 09 48 83 c0 01 48 39 d0 74 7a 80 38 00 74 f2 48 89 c2 b8 01 00 00 00 48 85 d2 75 56 5b 5d 41 5c c3 <48> 85 d2 74 5e 48 01 ea eb 09 48 83 c0 01 48 39 d0 74 50 80 38 00 RSP: 0018:ffffc9000cd676c8 EFLAGS: 00000283 RAX: ffffed100e9a110e RBX: ffffed100e9a110f RCX: ffffffff88ea062a RDX: 0000000000000001 RSI: 0000000000000008 RDI: ffff888074d08870 RBP: ffffed100e9a110e R08: 0000000000000001 R09: ffff888074d08877 R10: ffffed100e9a110e R11: 0000000000000000 R12: ffff888074d08000 R13: ffff888074d08000 R14: ffff888074d08088 R15: ffff888074d08000 FS: 0000555556d8e300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000 S: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000020000180 CR3: 0000000068909000 CR4: 00000000001506e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: instrument_atomic_read_write include/linux/instrumented.h:101 [inline] test_and_clear_bit include/asm-generic/bitops/instrumented-atomic.h:83 [inline] mptcp_release_cb+0x14a/0x210 net/mptcp/protocol.c:3016 release_sock+0xb4/0x1b0 net/core/sock.c:3204 mptcp_wait_data net/mptcp/protocol.c:1770 [inline] mptcp_recvmsg+0xfd1/0x27b0 net/mptcp/protocol.c:2080 inet6_recvmsg+0x11b/0x5e0 net/ipv6/af_inet6.c:659 sock_recvmsg_nosec net/socket.c:944 [inline] ____sys_recvmsg+0x527/0x600 net/socket.c:2626 ___sys_recvmsg+0x127/0x200 net/socket.c:2670 do_recvmmsg+0x24d/0x6d0 net/socket.c:2764 __sys_recvmmsg net/socket.c:2843 [inline] __do_sys_recvmmsg net/socket.c:2866 [inline] __se_sys_recvmmsg net/socket.c:2859 [inline] __x64_sys_recvmmsg+0x20b/0x260 net/socket.c:2859 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7fc200d2 ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于如果调用者提供了 MSG_WAITALL,接收队列中存在的数据就不满足请求,并且对等方不再接收到更多数据,recvmsg函数可能会进入无限循环。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 7a6a6cbc3e592e339ad23e4e8ede9a3f6160bda8 ~ 1a4554e94f0deff9fc1dc5addf93fa579cc29711 -
Linux Linux 5.6 -

II. Public POCs for CVE-2021-47448

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2021-47448

请登录查看更多情报信息。

Other References for CVE-2021-47448 (2)

Same Patch Batch · Linux · 2024-05-22 · 63 CVEs total

CVE-2021-47496 9.8 CRITICAL net/tls: Fix flipped sign in tls_err_abort() calls
CVE-2021-47478 9.1 CRITICAL isofs: Fix out of bound access for corrupted isofs image
CVE-2021-47450 8.8 HIGH KVM: arm64: Fix host stage-2 PGD refcount
CVE-2021-47433 8.1 HIGH btrfs: fix abort logic in btrfs_replace_file_extents
CVE-2021-47485 7.8 HIGH IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
CVE-2021-47447 7.8 HIGH drm/msm/a3xx: fix error handling in a3xx_gpu_init()
CVE-2021-47446 7.8 HIGH drm/msm/a4xx: fix error handling in a4xx_gpu_init()
CVE-2021-47451 7.8 HIGH netfilter: xt_IDLETIMER: fix panic that occurs when timer_type has garbage value
CVE-2021-47492 7.8 HIGH mm, thp: bail out early in collapse_file for writeback page
CVE-2021-47493 7.8 HIGH ocfs2: fix race between searching chunks and release journal_head from buffer_head
CVE-2021-47494 7.8 HIGH cfg80211: fix management registrations locking
CVE-2021-47483 7.8 HIGH regmap: Fix possible double-free in regcache_rbtree_exit()
CVE-2021-47461 7.8 HIGH userfaultfd: fix a race between writeprotect and exit_mmap()
CVE-2021-47459 7.8 HIGH can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
CVE-2021-47458 7.1 HIGH ocfs2: mount fails with buffer overflow in strlen
CVE-2021-47438 7.1 HIGH net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path
CVE-2021-47465 7.1 HIGH KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
CVE-2024-36010 igb: Fix string truncation warnings in igb_set_fw_version
CVE-2021-47473 scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
CVE-2021-47471 drm: mxsfb: Fix NULL pointer dereference crash on unload

Showing top 20 of 63 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2021-47448

No comments yet


Leave a comment