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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2021-47169— serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'

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存在安全漏洞,该漏洞源于使用 request_firmware 而不是 request_firmware_nowait,可能会导致NULL 指针取消引用。

AI Predicted 4.4 Difficulty: Moderate EPSS 0.23% · P12

Possible ATT&CK Techniques 1 AI

T1068 · Exploitation for Privilege Escalation

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux 7d9f49afa451d8565d00a5cea39acf9bb26feb50< 1e04d5d5fe5e76af68f834e1941fcbfa439653be affected
7d9f49afa451d8565d00a5cea39acf9bb26feb50< c697244ce940ec07e2d745ccb63ca97fc0266fbc affected
7d9f49afa451d8565d00a5cea39acf9bb26feb50< 1cc57cb32c84e059bd158494f746b665fc14d1b1 affected
7d9f49afa451d8565d00a5cea39acf9bb26feb50< 35265552c7fe9553c75e324c80f45e28ff14eb6e affected
7d9f49afa451d8565d00a5cea39acf9bb26feb50< 915452f40e2f495e187276c4407a4f567ec2307e affected
7d9f49afa451d8565d00a5cea39acf9bb26feb50< 6a931ceb0b9401fe18d0c500e08164bf9cc7be4b affected
7d9f49afa451d8565d00a5cea39acf9bb26feb50< 9b07b6973f7359e2dd6a9fe6db0c142634c823b7 affected
7d9f49afa451d8565d00a5cea39acf9bb26feb50< 016002848c82eeb5d460489ce392d91fe18c475c affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2021-47169

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
serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait' In 'rp2_probe', the driver registers 'rp2_uart_interrupt' then calls 'rp2_fw_cb' through 'request_firmware_nowait'. In 'rp2_fw_cb', if the firmware don't exists, function just return without initializing ports of 'rp2_card'. But now the interrupt handler function has been registered, and when an interrupt comes, 'rp2_uart_interrupt' may access those ports then causing NULL pointer dereference or other bugs. Because the driver does some initialization work in 'rp2_fw_cb', in order to make the driver ready to handle interrupts, 'request_firmware' should be used instead of asynchronous 'request_firmware_nowait'. This report reveals it: INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.19.177-gdba4159c14ef-dirty #45 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59- gc9ba5276e321-prebuilt.qemu.org 04/01/2014 Call Trace: <IRQ> __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xec/0x156 lib/dump_stack.c:118 assign_lock_key kernel/locking/lockdep.c:727 [inline] register_lock_class+0x14e5/0x1ba0 kernel/locking/lockdep.c:753 __lock_acquire+0x187/0x3750 kernel/locking/lockdep.c:3303 lock_acquire+0x124/0x340 kernel/locking/lockdep.c:3907 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x32/0x50 kernel/locking/spinlock.c:144 spin_lock include/linux/spinlock.h:329 [inline] rp2_ch_interrupt drivers/tty/serial/rp2.c:466 [inline] rp2_asic_interrupt.isra.9+0x15d/0x990 drivers/tty/serial/rp2.c:493 rp2_uart_interrupt+0x49/0xe0 drivers/tty/serial/rp2.c:504 __handle_irq_event_percpu+0xfb/0x770 kernel/irq/handle.c:149 handle_irq_event_percpu+0x79/0x150 kernel/irq/handle.c:189 handle_irq_event+0xac/0x140 kernel/irq/handle.c:206 handle_fasteoi_irq+0x232/0x5c0 kernel/irq/chip.c:725 generic_handle_irq_desc include/linux/irqdesc.h:155 [inline] handle_irq+0x230/0x3a0 arch/x86/kernel/irq_64.c:87 do_IRQ+0xa7/0x1e0 arch/x86/kernel/irq.c:247 common_interrupt+0xf/0xf arch/x86/entry/entry_64.S:670 </IRQ> RIP: 0010:native_safe_halt+0x28/0x30 arch/x86/include/asm/irqflags.h:61 Code: 00 00 55 be 04 00 00 00 48 c7 c7 00 c2 2f 8c 48 89 e5 e8 fb 31 e7 f8 8b 05 75 af 8d 03 85 c0 7e 07 0f 00 2d 8a 61 65 00 fb f4 <5d> c3 90 90 90 90 90 90 0f 1f 44 00 00 55 48 89 e5 41 57 41 56 41 RSP: 0018:ffff88806b71fcc8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffde RAX: 0000000000000000 RBX: ffffffff8bde7e48 RCX: ffffffff88a21285 RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff8c2fc200 RBP: ffff88806b71fcc8 R08: fffffbfff185f840 R09: fffffbfff185f840 R10: 0000000000000001 R11: fffffbfff185f840 R12: 0000000000000002 R13: ffffffff8bea18a0 R14: 0000000000000000 R15: 0000000000000000 arch_safe_halt arch/x86/include/asm/paravirt.h:94 [inline] default_idle+0x6f/0x360 arch/x86/kernel/process.c:557 arch_cpu_idle+0xf/0x20 arch/x86/kernel/process.c:548 default_idle_call+0x3b/0x60 kernel/sched/idle.c:93 cpuidle_idle_call kernel/sched/idle.c:153 [inline] do_idle+0x2ab/0x3c0 kernel/sched/idle.c:263 cpu_startup_entry+0xcb/0xe0 kernel/sched/idle.c:369 start_secondary+0x3b8/0x4e0 arch/x86/kernel/smpboot.c:271 secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243 BUG: unable to handle kernel NULL pointer dereference at 0000000000000010 PGD 8000000056d27067 P4D 8000000056d27067 PUD 56d28067 PMD 0 Oops: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.19.177-gdba4159c14ef-dirty #45 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59- gc9ba5276e321-prebuilt.qemu.org 04/01/2014 RIP: 0010:readl arch/x86/include/asm/io.h:59 [inline] RIP: 0010:rp2_ch_interrupt drivers/tty/serial/rp2.c:472 [inline] RIP: 0010:rp2_asic_interrupt.isra.9+0x181/0x990 drivers/tty/serial/rp2.c: 493 Co ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
N/A
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存在安全漏洞,该漏洞源于使用 request_firmware 而不是 request_firmware_nowait,可能会导致NULL 指针取消引用。
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 7d9f49afa451d8565d00a5cea39acf9bb26feb50 ~ 1e04d5d5fe5e76af68f834e1941fcbfa439653be -
Linux Linux 3.9 -

II. Public POCs for CVE-2021-47169

# 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-47169

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

Other References for CVE-2021-47169 (7)

Same Patch Batch · Linux · 2024-03-25 · 40 CVEs total

CVE-2021-47137 9.8 CRITICAL net: lantiq: fix memory corruption in RX ring
CVE-2021-47168 9.8 CRITICAL NFS: fix an incorrect limit in filelayout_decode_layout()
CVE-2021-47162 9.8 CRITICAL tipc: skb_linearize the head skb when reassembling msgs
CVE-2021-47136 8.6 HIGH net: zero-initialize tc skb extension on allocation
CVE-2021-47160 8.1 HIGH net: dsa: mt7530: fix VLAN traffic leaks
CVE-2021-47142 7.8 HIGH drm/amdgpu: Fix a use-after-free
CVE-2021-47175 7.8 HIGH net/sched: fq_pie: fix OOB access in the traffic path
CVE-2021-47163 7.8 HIGH tipc: wait and exit until all work queues are done
CVE-2021-47159 7.8 HIGH net: dsa: fix a crash if ->get_sset_count() fails
CVE-2021-47158 7.8 HIGH net: dsa: sja1105: add error handling in sja1105_setup()
CVE-2021-47153 7.8 HIGH i2c: i801: Don't generate an interrupt on bus reset
CVE-2021-47152 7.8 HIGH mptcp: fix data stream corruption
CVE-2021-47148 7.8 HIGH octeontx2-pf: fix a buffer overflow in otx2_set_rxfh_context()
CVE-2021-47179 7.5 HIGH NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()
CVE-2021-47178 7.5 HIGH scsi: target: core: Avoid smp_processor_id() in preemptible code
CVE-2021-47166 NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
CVE-2021-47180 NFC: nci: fix memory leak in nci_allocate_device
CVE-2021-47177 iommu/vt-d: Fix sysfs leak in alloc_iommu()
CVE-2021-47176 s390/dasd: add missing discipline function
CVE-2021-47141 gve: Add NULL pointer checks when freeing irqs.

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

IV. Related Vulnerabilities

V. Comments for CVE-2021-47169

No comments yet


Leave a comment