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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-47182— scsi: core: Fix scsi_mode_sense() buffer length handling

EPSS 0.02% · P4
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2021-47182

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
scsi: core: Fix scsi_mode_sense() buffer length handling
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: scsi: core: Fix scsi_mode_sense() buffer length handling Several problems exist with scsi_mode_sense() buffer length handling: 1) The allocation length field of the MODE SENSE(10) command is 16-bits, occupying bytes 7 and 8 of the CDB. With this command, access to mode pages larger than 255 bytes is thus possible. However, the CDB allocation length field is set by assigning len to byte 8 only, thus truncating buffer length larger than 255. 2) If scsi_mode_sense() is called with len smaller than 8 with sdev->use_10_for_ms set, or smaller than 4 otherwise, the buffer length is increased to 8 and 4 respectively, and the buffer is zero filled with these increased values, thus corrupting the memory following the buffer. Fix these 2 problems by using put_unaligned_be16() to set the allocation length field of MODE SENSE(10) CDB and by returning an error when len is too small. Furthermore, if len is larger than 255B, always try MODE SENSE(10) first, even if the device driver did not set sdev->use_10_for_ms. In case of invalid opcode error for MODE SENSE(10), access to mode pages larger than 255 bytes are not retried using MODE SENSE(6). To avoid buffer length overflows for the MODE_SENSE(10) case, check that len is smaller than 65535 bytes. While at it, also fix the folowing: * Use get_unaligned_be16() to retrieve the mode data length and block descriptor length fields of the mode sense reply header instead of using an open coded calculation. * Fix the kdoc dbd argument explanation: the DBD bit stands for Disable Block Descriptor, which is the opposite of what the dbd argument description was.
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 存在安全漏洞,该漏洞源于函数scsi_mode_sense缓冲区长度处理不当,导致存在安全漏洞。
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 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ~ e15de347faf4a9f494cbd4e9a623d343dc1b5851 -
LinuxLinux 2.6.12 -

II. Public POCs for CVE-2021-47182

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2021-47182

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-04-10 · 39 CVEs total

CVE-2021-47210usb: typec: tipd: Remove WARN_ON in tps6598x_block_read
CVE-2021-47200drm/prime: Fix use after free in mmap with drm_gem_ttm_mmap
CVE-2021-47201iavf: free q_vectors before queues in iavf_disable_vf
CVE-2021-47202thermal: Fix NULL pointer dereferences in of_thermal_ functions
CVE-2021-47203scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
CVE-2021-47204net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove
CVE-2021-47205clk: sunxi-ng: Unregister clocks/resets when unbinding
CVE-2021-47206usb: host: ohci-tmio: check return value after calling platform_get_resource()
CVE-2021-47207ALSA: gus: fix null pointer dereference on pointer block
CVE-2021-47209sched/fair: Prevent dead task groups from regaining cfs_rq's
CVE-2021-47199net/mlx5e: CT, Fix multiple allocations and memleak of mod acts
CVE-2021-47211ALSA: usb-audio: fix null pointer dereference on pointer cs_desc
CVE-2021-47212net/mlx5: Update error handler for UCTX and UMEM
CVE-2021-47214hugetlb, userfaultfd: fix reservation restore on userfaultfd error
CVE-2021-47215net/mlx5e: kTLS, Fix crash in RX resync flow
CVE-2021-47216scsi: advansys: Fix kernel pointer leak
CVE-2021-47217x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails
CVE-2021-47218selinux: fix NULL-pointer dereference when hashtab allocation fails
CVE-2021-47219scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs()
CVE-2021-47190perf bpf: Avoid memory leak from perf_env__insert_btf()

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

IV. Related Vulnerabilities

V. Comments for CVE-2021-47182

No comments yet


Leave a comment