params: fix charp corruption on allocation failure
- 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 6.6.160, 6.12.109, 6.18.50, 7.2.4
- 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
Summary
In the Linux kernel, the following vulnerability has been resolved: params: fix charp corruption on allocation failure param_set_charp() stores charp parameters in allocated memory after slab is available, and releases the previous value when the parameter is updated. The previous value is released before the replacement allocation succeeds. If kmalloc_parameter() fails, the setter returns -ENOMEM with the parameter left as NULL. Failing zswap's compressor update before zswap is initialized can later trigger: BUG: kernel NULL pointer dereference, address: 0000000000000000 RIP: 0010:strcmp+0x10/0x30 Call Trace: zswap_setup+0x3b1/0x490 zswap_enabled_param_set+0x5b/0xa0 param_attr_store+0x93/0xe0 module_attr_store+0x1c/0x30 kernfs_fop_write_iter+0x116/0x1f0 Allocate and copy the replacement first, then replace the parameter value only after allocation succeeds.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From e180a6b7759a99a28cbcce3547c4c80822cb6c2a · fixed in 31b41ea8383d51992d6b0dfe3a99da1dec8ce1c1; From e180a6b7759a99a28cbcce3547c4c80822cb6c2a · fixed in 614f873268c5b172804c9af6639bd17b7e1e2359; From e180a6b7759a99a28cbcce3547c4c80822cb6c2a · fixed in 704ecd010d4a9b33160e40b74eb402f6b86a18e0; From e180a6b7759a99a28cbcce3547c4c80822cb6c2a · fixed in 0d8e2404925a0607ffec79a53170715a46936896; From e180a6b7759a99a28cbcce3547c4c80822cb6c2a · fixed in 3dfaae04243cde460d82dfc2a7dd0bb6664d20ae
- Linux Linux
2.6.30
- KernelLinux
From 2.6.30 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4