{"api_version":"1","generated_at":"2026-11-12T05:42:11+00:00","cve":"CVE-2026-98354","urls":{"html":"https://cve.report/CVE-2026-98354","api":"https://cve.report/api/cve/CVE-2026-98354.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-98354","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-98354"},"summary":{"title":"RDMA/mad: Fix receive buffer leak when PKey enforcement fails","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/mad: Fix receive buffer leak when PKey enforcement fails\n\nib_mad_complete_recv() initializes mad_recv_wc->rmpp_list and then runs\nib_mad_enforce_security() before linking recv_buf onto that list.  On\nfailure it calls ib_free_recv_mad(), which only walks rmpp_list and frees\nthe ib_mad_private of every buffer found there.  As the list is still\nempty at that point, nothing is freed at all.\n\nThe caller cannot clean up either: ib_mad_recv_done() sets recv to NULL\nright after ib_mad_complete_recv() returns, assuming the MAD layer took\nownership of the buffer.  Every MAD that fails the PKey check therefore\nleaks one ib_mad_private (about 300 bytes per IB port MAD, ~2K for OPA),\nand a remote node can trigger this repeatedly by sending MADs with a\nwrong PKey.\n\nLink recv_buf onto rmpp_list right after the list is initialized, so the\nerror path has something to free.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-10-06 09:18:28","updated_at":"2026-10-19 10:18:38"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/39c4ea72a40503e102ae07e6776005f96ca078a6","name":"https://git.kernel.org/stable/c/39c4ea72a40503e102ae07e6776005f96ca078a6","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/4617c9a856188674dddb0ca66979746d07688579","name":"https://git.kernel.org/stable/c/4617c9a856188674dddb0ca66979746d07688579","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/752b30e9d339008e5ce7eed412e9446078916129","name":"https://git.kernel.org/stable/c/752b30e9d339008e5ce7eed412e9446078916129","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/c0d8df85db146d6275e226cb950023be69dd6c77","name":"https://git.kernel.org/stable/c/c0d8df85db146d6275e226cb950023be69dd6c77","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/bad289e42f512646a988f278f536d21547df73f1","name":"https://git.kernel.org/stable/c/bad289e42f512646a988f278f536d21547df73f1","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/8e2036fb47a5b152d53eadbd35abf311bd34cc7f","name":"https://git.kernel.org/stable/c/8e2036fb47a5b152d53eadbd35abf311bd34cc7f","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/3476c28c9addfa253f505e6bd87f1f5598b961d0","name":"https://git.kernel.org/stable/c/3476c28c9addfa253f505e6bd87f1f5598b961d0","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/5091e25ec503f7fc02723ca435226467b68caac7","name":"https://git.kernel.org/stable/c/5091e25ec503f7fc02723ca435226467b68caac7","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-98354","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98354","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a2b338fe63200d716d2e24131cdb49f17c77da 4617c9a856188674dddb0ca66979746d07688579 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a2b338fe63200d716d2e24131cdb49f17c77da 8e2036fb47a5b152d53eadbd35abf311bd34cc7f git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a2b338fe63200d716d2e24131cdb49f17c77da bad289e42f512646a988f278f536d21547df73f1 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a2b338fe63200d716d2e24131cdb49f17c77da 752b30e9d339008e5ce7eed412e9446078916129 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a2b338fe63200d716d2e24131cdb49f17c77da 39c4ea72a40503e102ae07e6776005f96ca078a6 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a2b338fe63200d716d2e24131cdb49f17c77da 5091e25ec503f7fc02723ca435226467b68caac7 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a2b338fe63200d716d2e24131cdb49f17c77da c0d8df85db146d6275e226cb950023be69dd6c77 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a2b338fe63200d716d2e24131cdb49f17c77da 3476c28c9addfa253f505e6bd87f1f5598b961d0 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.13","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.13 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.271 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.222 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.189 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.158 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.112 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.54 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.8 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"98354","cve":"CVE-2026-98354","epss":"0.001720000","percentile":"0.059350000","score_date":"2026-10-06","updated_at":"2026-10-07 00:14:55"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/infiniband/core/mad.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"4617c9a856188674dddb0ca66979746d07688579","status":"affected","version":"47a2b338fe63200d716d2e24131cdb49f17c77da","versionType":"git"},{"lessThan":"8e2036fb47a5b152d53eadbd35abf311bd34cc7f","status":"affected","version":"47a2b338fe63200d716d2e24131cdb49f17c77da","versionType":"git"},{"lessThan":"bad289e42f512646a988f278f536d21547df73f1","status":"affected","version":"47a2b338fe63200d716d2e24131cdb49f17c77da","versionType":"git"},{"lessThan":"752b30e9d339008e5ce7eed412e9446078916129","status":"affected","version":"47a2b338fe63200d716d2e24131cdb49f17c77da","versionType":"git"},{"lessThan":"39c4ea72a40503e102ae07e6776005f96ca078a6","status":"affected","version":"47a2b338fe63200d716d2e24131cdb49f17c77da","versionType":"git"},{"lessThan":"5091e25ec503f7fc02723ca435226467b68caac7","status":"affected","version":"47a2b338fe63200d716d2e24131cdb49f17c77da","versionType":"git"},{"lessThan":"c0d8df85db146d6275e226cb950023be69dd6c77","status":"affected","version":"47a2b338fe63200d716d2e24131cdb49f17c77da","versionType":"git"},{"lessThan":"3476c28c9addfa253f505e6bd87f1f5598b961d0","status":"affected","version":"47a2b338fe63200d716d2e24131cdb49f17c77da","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/infiniband/core/mad.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.13"},{"lessThan":"4.13","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.271","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.222","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.189","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.158","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.112","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.54","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.8","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.271","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.222","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.189","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.158","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.112","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.54","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.8","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3","versionStartIncluding":"4.13","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/mad: Fix receive buffer leak when PKey enforcement fails\n\nib_mad_complete_recv() initializes mad_recv_wc->rmpp_list and then runs\nib_mad_enforce_security() before linking recv_buf onto that list.  On\nfailure it calls ib_free_recv_mad(), which only walks rmpp_list and frees\nthe ib_mad_private of every buffer found there.  As the list is still\nempty at that point, nothing is freed at all.\n\nThe caller cannot clean up either: ib_mad_recv_done() sets recv to NULL\nright after ib_mad_complete_recv() returns, assuming the MAD layer took\nownership of the buffer.  Every MAD that fails the PKey check therefore\nleaks one ib_mad_private (about 300 bytes per IB port MAD, ~2K for OPA),\nand a remote node can trigger this repeatedly by sending MADs with a\nwrong PKey.\n\nLink recv_buf onto rmpp_list right after the list is initialized, so the\nerror path has something to free."}],"providerMetadata":{"dateUpdated":"2026-10-19T09:18:04.973Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/4617c9a856188674dddb0ca66979746d07688579"},{"url":"https://git.kernel.org/stable/c/8e2036fb47a5b152d53eadbd35abf311bd34cc7f"},{"url":"https://git.kernel.org/stable/c/bad289e42f512646a988f278f536d21547df73f1"},{"url":"https://git.kernel.org/stable/c/752b30e9d339008e5ce7eed412e9446078916129"},{"url":"https://git.kernel.org/stable/c/39c4ea72a40503e102ae07e6776005f96ca078a6"},{"url":"https://git.kernel.org/stable/c/5091e25ec503f7fc02723ca435226467b68caac7"},{"url":"https://git.kernel.org/stable/c/c0d8df85db146d6275e226cb950023be69dd6c77"},{"url":"https://git.kernel.org/stable/c/3476c28c9addfa253f505e6bd87f1f5598b961d0"}],"title":"RDMA/mad: Fix receive buffer leak when PKey enforcement fails","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-98354","datePublished":"2026-10-06T08:46:41.768Z","dateReserved":"2026-09-25T10:25:14.343Z","dateUpdated":"2026-10-19T09:18:04.973Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-06 09:18:28","lastModifiedDate":"2026-10-19 10:18:38","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"98354","Ordinal":"1","Title":"RDMA/mad: Fix receive buffer leak when PKey enforcement fails","CVE":"CVE-2026-98354","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"98354","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/mad: Fix receive buffer leak when PKey enforcement fails\n\nib_mad_complete_recv() initializes mad_recv_wc->rmpp_list and then runs\nib_mad_enforce_security() before linking recv_buf onto that list.  On\nfailure it calls ib_free_recv_mad(), which only walks rmpp_list and frees\nthe ib_mad_private of every buffer found there.  As the list is still\nempty at that point, nothing is freed at all.\n\nThe caller cannot clean up either: ib_mad_recv_done() sets recv to NULL\nright after ib_mad_complete_recv() returns, assuming the MAD layer took\nownership of the buffer.  Every MAD that fails the PKey check therefore\nleaks one ib_mad_private (about 300 bytes per IB port MAD, ~2K for OPA),\nand a remote node can trigger this repeatedly by sending MADs with a\nwrong PKey.\n\nLink recv_buf onto rmpp_list right after the list is initialized, so the\nerror path has something to free.","Type":"Description","Title":"RDMA/mad: Fix receive buffer leak when PKey enforcement fails"}]}}}