{"id":21461,"date":"2026-09-12T04:31:13","date_gmt":"2026-09-11T20:31:13","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89539"},"modified":"2026-09-12T04:31:13","modified_gmt":"2026-09-11T20:31:13","slug":"cve-2026-89539","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89539","title":{"rendered":"CVE-2026-89539 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: reject duplic"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>SUNRPC: reject duplicate CREDS_VALUE options<\/p>\n<p>gssx_dec_option_array() walks the wire-supplied option array and, for<br \/>\nevery entry whose name matches CREDS_VALUE, calls<br \/>\ngssx_dec_linux_creds() on the same struct svc_cred. That helper<br \/>\nunconditionally installs a fresh groups_alloc() result into<br \/>\ncreds-&gt;cr_group_info without releasing whatever pointer was already<br \/>\nthere:<\/p>\n<p>    for (i = 0; i &lt; count; i++) {<br \/>\n        &#8230; decode name &#8230;<br \/>\n        if (length == sizeof(CREDS_VALUE) &amp;&amp;<br \/>\n            memcmp(p, CREDS_VALUE, sizeof(CREDS_VALUE)) == 0) {<br \/>\n            err = gssx_dec_linux_creds(xdr, creds);<br \/>\n            &#8230;<br \/>\n        }<br \/>\n    }<\/p>\n<p>A reply that carries two CREDS_VALUE entries therefore overwrites<br \/>\ncr_group_info on the second iteration and orphans the group_info<br \/>\nallocated by the first call. The earlier free_creds path only<br \/>\nreleases the last cr_group_info via free_svc_cred(), so the first<br \/>\nallocation&#039;s refcount stays at one and its kvmalloc-backed storage<br \/>\nis leaked. No in-tree caller of gssp_accept_sec_context_upcall()<br \/>\nexpects more than one CREDS_VALUE per reply.<\/p>\n<p>Fix by tracking whether a CREDS_VALUE option has already been<br \/>\ndecoded and returning -EINVAL on any subsequent match, so the<br \/>\nfree_creds path releases the single group_info that was installed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>SUNRPC: reject duplicate CREDS_VALUE options<\/p>\n<p>gssx_dec_option_array() walks the wire-supplied option array and, for<br \/>\nevery entry who<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21461","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}