CVE-2026-89552

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxe180a6b7759a99a28cbcce3547c4c80822cb6c2a < 614f873268c5b172804c9af6639bd17b7e1e2359affected
LinuxLinuxe180a6b7759a99a28cbcce3547c4c80822cb6c2a < 704ecd010d4a9b33160e40b74eb402f6b86a18e0affected
LinuxLinuxe180a6b7759a99a28cbcce3547c4c80822cb6c2a < 0d8e2404925a0607ffec79a53170715a46936896affected
LinuxLinuxe180a6b7759a99a28cbcce3547c4c80822cb6c2a < 3dfaae04243cde460d82dfc2a7dd0bb6664d20aeaffected
LinuxLinux2.6.30affected
LinuxLinux0 < 2.6.30unaffected
LinuxLinux6.12.109 <= 6.12.*unaffected
LinuxLinux6.18.50 <= 6.18.*unaffected
LinuxLinux7.2.4 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References