scsi: target: target_core_configfs: Add length check to avoid buffer overflow
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.4.301, 5.10.246, 5.15.195, 6.1.156, 6.6.110, and 3 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: target: target_core_configfs: Add length check to avoid buffer overflow A buffer overflow arises from the usage of snprintf to write into the buffer "buf" in target_lu_gp_members_show function located in /drivers/target/target_core_configfs.c. This buffer is allocated with size LU_GROUP_NAME_BUF (256 bytes). snprintf(...) formats multiple strings into buf with the HBA name (hba->hba_group.cg_item), a slash character, a devicename (dev-> dev_group.cg_item) and a newline character, the total formatted string length may exceed the buffer size of 256 bytes. Since snprintf() returns the total number of bytes that would have been written (the length of %s/%sn ), this value may exceed the buffer length (256 bytes) passed to memcpy(), this will ultimately cause function memcpy reporting a buffer overflow error. An additional check of the return value of snprintf() can avoid this buffer overflow.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in e6eeee5dc0d9221ff96d1b229b1d0222c8871b84; From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in 764a91e2fc9639e07aac93bc70e387e6b1e33084; From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in ddc79fba132b807ff775467acceaf48b456e008b; From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in e73fe0eefac3e15bf88fb5b4afae4c76215ee4d4; From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in f03aa5e39da7d045615b3951d2a6ca1d7132f881; From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in 53c6351597e6a17ec6619f6f060d54128cb9a187; From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in 4b292286949588bd2818e66ff102db278de8dd26; From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in a150275831b765b0f1de8b8ff52ec5c6933ac15d; From c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 · fixed in 27e06650a5eafe832a90fd2604f0c5e920857fae
- Linux Linux
2.6.38
- KernelLinux
From 2.6.38 · fixed in 5.4.301; From 5.5.0 · fixed in 5.10.246; From 5.11.0 · fixed in 5.15.195; From 5.16.0 · fixed in 6.1.156; From 6.2.0 · fixed in 6.6.110; From 6.7.0 · fixed in 6.12.51; From 6.13.0 · fixed in 6.16.11; From 6.17.0 · fixed in 6.17.1
References 9
git.kernel.org
- stable/c/e6eeee5dc0d9221ff96d1b229b1d0222c8871b84
- stable/c/764a91e2fc9639e07aac93bc70e387e6b1e33084
- stable/c/ddc79fba132b807ff775467acceaf48b456e008b
- stable/c/e73fe0eefac3e15bf88fb5b4afae4c76215ee4d4
- stable/c/f03aa5e39da7d045615b3951d2a6ca1d7132f881
- stable/c/53c6351597e6a17ec6619f6f060d54128cb9a187
- stable/c/4b292286949588bd2818e66ff102db278de8dd26
- stable/c/a150275831b765b0f1de8b8ff52ec5c6933ac15d
- stable/c/27e06650a5eafe832a90fd2604f0c5e920857fae