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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2023-52920— bpf: support non-r10 register spill/fill to/from stack in precision tracking

EPSS 0.01% · P3
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2023-52920

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
bpf: support non-r10 register spill/fill to/from stack in precision tracking
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: bpf: support non-r10 register spill/fill to/from stack in precision tracking Use instruction (jump) history to record instructions that performed register spill/fill to/from stack, regardless if this was done through read-only r10 register, or any other register after copying r10 into it *and* potentially adjusting offset. To make this work reliably, we push extra per-instruction flags into instruction history, encoding stack slot index (spi) and stack frame number in extra 10 bit flags we take away from prev_idx in instruction history. We don't touch idx field for maximum performance, as it's checked most frequently during backtracking. This change removes basically the last remaining practical limitation of precision backtracking logic in BPF verifier. It fixes known deficiencies, but also opens up new opportunities to reduce number of verified states, explored in the subsequent patches. There are only three differences in selftests' BPF object files according to veristat, all in the positive direction (less states). File Program Insns (A) Insns (B) Insns (DIFF) States (A) States (B) States (DIFF) -------------------------------------- ------------- --------- --------- ------------- ---------- ---------- ------------- test_cls_redirect_dynptr.bpf.linked3.o cls_redirect 2987 2864 -123 (-4.12%) 240 231 -9 (-3.75%) xdp_synproxy_kern.bpf.linked3.o syncookie_tc 82848 82661 -187 (-0.23%) 5107 5073 -34 (-0.67%) xdp_synproxy_kern.bpf.linked3.o syncookie_xdp 85116 84964 -152 (-0.18%) 5162 5130 -32 (-0.62%) Note, I avoided renaming jmp_history to more generic insn_hist to minimize number of lines changed and potential merge conflicts between bpf and bpf-next trees. Notice also cur_hist_entry pointer reset to NULL at the beginning of instruction verification loop. This pointer avoids the problem of relying on last jump history entry's insn_idx to determine whether we already have entry for current instruction or not. It can happen that we added jump history entry because current instruction is_jmp_point(), but also we need to add instruction flags for stack access. In this case, we don't want to entries, so we need to reuse last added entry, if it is present. Relying on insn_idx comparison has the same ambiguity problem as the one that was fixed recently in [0], so we avoid that. [0] https://patchwork.kernel.org/project/netdevbpf/patch/20231110002638.4168352-3-andrii@kernel.org/
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于bpf模块中,对非r10寄存器进行溢出/填充到堆栈的支持不足,导致精度跟踪逻辑的限制未能有效处理,影响了BPF验证器的性能。
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

VendorProductAffected VersionsCPESubscribe
LinuxLinux b5dc0163d8fd78e64a7e21f309cf932fda34353e ~ ecc2aeeaa08a355d84d3ca9c3d2512399a194f29 -
LinuxLinux 5.3 -

II. Public POCs for CVE-2023-52920

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2023-52920

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-11-05 · 50 CVEs total

CVE-2024-50123bpf: Add the missing BPF_LINK_TYPE invocation for sockmap
CVE-2024-50129net: pse-pd: Fix out of bound for loop
CVE-2024-50134drm/vboxvideo: Replace fake VLA at end of vbva_mouse_pointer_shape with real VLA
CVE-2024-50136net/mlx5: Unregister notifier on eswitch init failure
CVE-2024-50135nvme-pci: fix race condition between reset and nvme_dev_disable()
CVE-2024-50137reset: starfive: jh71x0: Fix accessing the empty member on JH7110 SoC
CVE-2024-50138bpf: Use raw_spinlock_t in ringbuf
CVE-2024-50132tracing/probes: Fix MAX_TRACE_ARGS limit handling
CVE-2024-50127net: sched: fix use-after-free in taprio_change()
CVE-2024-50125Bluetooth: SCO: Fix UAF on sco_sock_timeout
CVE-2024-50126net: sched: use RCU read-side critical section in taprio_dump()
CVE-2024-50124Bluetooth: ISO: Fix UAF on iso_sock_timeout
CVE-2024-50121nfsd: cancel nfsd_shrinker_work using sync mode in nfs4_state_shutdown_net
CVE-2024-50122PCI: Hold rescan lock while adding devices during host probe
CVE-2024-50120smb: client: Handle kstrdup failures for passwords
CVE-2024-50119cifs: fix warning when destroy 'cifs_io_request_pool'
CVE-2024-50118btrfs: reject ro->rw reconfiguration if there are hard ro requirements
CVE-2024-50117drm/amd: Guard against bad data for ATIF ACPI method
CVE-2024-50116nilfs2: fix kernel bug due to missing clearing of buffer delay flag
CVE-2024-50115KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory

Showing top 20 of 50 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2023-52920

No comments yet


Leave a comment