All vulnerabilities
CVE-2026-97506

Linux: crypto: ixp4xx - fix buffer chain unwind on allocation failure

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.16%Chance of exploitation activity in the next 30 days, higher than 4% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in4918b0bd7d2baafb45d87dca9e322137c96005c2Also 8c37bc8d6a6f77bf9593fb1bcab6c14c7cf02991, 04cb00106ca4d0fa9eca24cadc4eda6036e855c8 and 5 moreCVE List
Published24 Sep 2026Updated 3 Oct 2026CVE List

What fixes it

  • 4918b0bd7d2baafb45d87dca9e322137c96005c2LinuxCVE List
  • 8c37bc8d6a6f77bf9593fb1bcab6c14c7cf02991LinuxCVE List
  • 04cb00106ca4d0fa9eca24cadc4eda6036e855c8LinuxCVE List
  • 028a7f4f3d69e551f6bf9f728d547bbf4cfc707dLinuxCVE List
  • 25056329384010a8672552b134f609601dc4f80eLinuxCVE List
  • 2.6.28LinuxCVE List
Show all 8 fixed versions

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

In the Linux kernel, the following vulnerability has been resolved:

crypto: ixp4xx - fix buffer chain unwind on allocation failure

chainup_buffers() builds a linked list of buffer descriptors for a scatterlist. If dma_pool_alloc() fails while constructing the list, the current code sets buf to NULL and later dereferences it unconditionally at the end of the function:

buf->next = NULL; buf->phys_next = 0;

This can lead to a null-pointer dereference on allocation failure.

If the failure happens after part of the descriptor chain has already been allocated and DMA-mapped, the partially constructed chain also needs to be released.

Fix this by terminating the partially constructed chain on allocation failure and letting the callers unwind it via their existing cleanup paths. Also fix ablk_perform() to preserve the hook pointers before checking for failure, so partially built chains can be freed correctly.

Text from CVE List

Affected versions 20

  • Linuxaffected: 0d44dc59b2b434b29aafeae581d06f81efac7c83 before d4007867be42d71795b78fa7f8ce7514dda9ca83CVE List
  • Linuxaffected: 0d44dc59b2b434b29aafeae581d06f81efac7c83 before 4918b0bd7d2baafb45d87dca9e322137c96005c2CVE List
  • Linuxaffected: 0d44dc59b2b434b29aafeae581d06f81efac7c83 before 8c37bc8d6a6f77bf9593fb1bcab6c14c7cf02991CVE List
  • Linuxaffected: 0d44dc59b2b434b29aafeae581d06f81efac7c83 before 04cb00106ca4d0fa9eca24cadc4eda6036e855c8CVE List
  • Linuxaffected: 0d44dc59b2b434b29aafeae581d06f81efac7c83 before 028a7f4f3d69e551f6bf9f728d547bbf4cfc707dCVE List
  • Linuxaffected: 0d44dc59b2b434b29aafeae581d06f81efac7c83 before 25056329384010a8672552b134f609601dc4f80eCVE List
  • Linuxaffected: 5a80273150a8a1725fa70418d106eb1f2ee8fd2fCVE List
  • Linuxaffected: 82a8becb9c2c52fc5e67057a43aeded1f0731e7bCVE List
  • Linuxaffected: 68845515c8b11791b547a2838e22c27dfa3115eeCVE List
  • Linuxaffected: 2.6.27.22 before 2.6.28CVE List
  • Linuxaffected: 2.6.28.10 before 2.6.29CVE List
  • Linuxaffected: 2.6.29.3 before 2.6.30CVE List
  • Linuxaffected: 2.6.30CVE List
  • Linuxunaffected: all versions before 2.6.30CVE List
  • Linuxunaffected: 5.15.222 through 5.15.*CVE List
  • Linuxunaffected: 6.1.189 through 6.1.*CVE List
  • Linuxunaffected: 6.6.158 through 6.6.*CVE List
  • Linuxunaffected: 6.12.111 through 6.12.*CVE List
  • Linuxunaffected: 6.18.53 through 6.18.*CVE List
  • Linuxunaffected: 7.2CVE List

References 6