UBUNTU-CVE-2026-89975: Medium severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: nvme-fabrics: fix DHCHAP secret leak on parse failure nvmfparseoptions() duplicates dhchapsecret and dhchapctrlsecret with matchstrdup() before validating the DHHC-1: representation. If validation fails, the parser returns -EINVAL before the temporary string in p is assigned to opts->dhchapsecret or opts->dhchapctrlsecret. nvmfcreatectrl() subsequently frees opts, but nvmffreeoptions() cannot release the unassigned temporary string. Each rejected option therefore leaks one allocation. This is easy to miss because valid secrets transfer ownership to opts and are freed normally, while the malformed-secret path still returns the expected -EINVAL to userspace. With CONFIGNVMEHOSTAUTH enabled, the leak is reachable before the required-option checks and transport lookup. No NVMe-oF target or working transport connection is required; for example, repeatedly writing dhchapsecret=BAD or dhchapctrlsecret=BAD to /dev/nvme-fabrics deterministically takes the leaking parse path. Free the temporary string before leaving both validation error paths. Use kfreesensitive() because the copied option may contain secret material even when its representation is rejected, matching the sensitive cleanup used for stored DHCHAP secrets.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In nvmf_parse_options(), free the temporary duplicated DHCHAP secret with kfree_sensitive() before leaving both validation-error paths for dhchap_secret and dhchap_ctrl_secret, including when the representation is rejected and before returning -EINVAL.