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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2023-52611— wifi: rtw88: sdio: Honor the host max_req_size in the RX path

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

I. Basic Information for CVE-2023-52611

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
wifi: rtw88: sdio: Honor the host max_req_size in the RX path
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: wifi: rtw88: sdio: Honor the host max_req_size in the RX path Lukas reports skb_over_panic errors on his Banana Pi BPI-CM4 which comes with an Amlogic A311D (G12B) SoC and a RTL8822CS SDIO wifi/Bluetooth combo card. The error he observed is identical to what has been fixed in commit e967229ead0e ("wifi: rtw88: sdio: Check the HISR RX_REQUEST bit in rtw_sdio_rx_isr()") but that commit didn't fix Lukas' problem. Lukas found that disabling or limiting RX aggregation works around the problem for some time (but does not fully fix it). In the following discussion a few key topics have been discussed which have an impact on this problem: - The Amlogic A311D (G12B) SoC has a hardware bug in the SDIO controller which prevents DMA transfers. Instead all transfers need to go through the controller SRAM which limits transfers to 1536 bytes - rtw88 chips don't split incoming (RX) packets, so if a big packet is received this is forwarded to the host in it's original form - rtw88 chips can do RX aggregation, meaning more multiple incoming packets can be pulled by the host from the card with one MMC/SDIO transfer. This Depends on settings in the REG_RXDMA_AGG_PG_TH register (BIT_RXDMA_AGG_PG_TH limits the number of packets that will be aggregated, BIT_DMA_AGG_TO_V1 configures a timeout for aggregation and BIT_EN_PRE_CALC makes the chip honor the limits more effectively) Use multiple consecutive reads in rtw_sdio_read_port() and limit the number of bytes which are copied by the host from the card in one MMC/SDIO transfer. This allows receiving a buffer that's larger than the hosts max_req_size (number of bytes which can be transferred in one MMC/SDIO transfer). As a result of this the skb_over_panic error is gone as the rtw88 driver is now able to receive more than 1536 bytes from the card (either because the incoming packet is larger than that or because multiple packets have been aggregated). In case of an receive errors (-EILSEQ has been observed by Lukas) we need to drain the remaining data from the card's buffer, otherwise the card will return corrupt data for the next rtw_sdio_read_port() call.
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存在安全漏洞,该漏洞源于skb_over_panic存在安全漏洞。
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 65371a3f14e73979958aea0db1e3bb456a296149 ~ 5b5ddf21b978ec315cab9d9e7e6ac7374791a8c7 -
LinuxLinux 6.4 -

II. Public POCs for CVE-2023-52611

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2023-52611

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-03-18 · 21 CVEs total

CVE-2024-26634net: fix removing a namespace with conflicting altnames
CVE-2024-26641ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv()
CVE-2024-26640tcp: add sanity checks to rx zerocopy
CVE-2023-52619pstore/ram: Fix crash when setting number of cpus to an odd number
CVE-2023-52618block/rnbd-srv: Check for unlikely string overflow
CVE-2023-52617PCI: switchtec: Fix stdev_release() crash after surprise hot remove
CVE-2024-26638nbd: always initialize struct msghdr completely
CVE-2024-26636llc: make llc_ui_sendmsg() more robust against bonding changes
CVE-2024-26637wifi: ath11k: rely on mac80211 debugfs handling for vif
CVE-2024-26635llc: Drop support for ETH_P_TR_802_2.
CVE-2023-52609binder: fix race between mmput() and do_exit()
CVE-2023-52616crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init
CVE-2023-52615hwrng: core - Fix page fault dead lock on mmap-ed hwrng
CVE-2023-52614PM / devfreq: Fix buffer overflow in trans_stat_show
CVE-2024-26633ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim()
CVE-2024-26632block: Fix iterating over an empty bio with bio_for_each_folio_all
CVE-2024-26631ipv6: mcast: fix data-race in ipv6_mc_down / mld_ifc_work
CVE-2023-52613drivers/thermal/loongson2_thermal: Fix incorrect PTR_ERR() judgment
CVE-2023-52612crypto: scomp - fix req->dst buffer overflow
CVE-2023-52610net/sched: act_ct: fix skb leak and crash on ooo frags

IV. Related Vulnerabilities

V. Comments for CVE-2023-52611

No comments yet


Leave a comment