CVE-2026-89539

SUNRPC: reject duplicate CREDS_VALUE options

State
Published
Severity
Not scored
Published
Sep 11, 2026
Updated
Oct 30, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

SUNRPC: reject duplicate CREDS_VALUE options

gssx_dec_option_array() walks the wire-supplied option array and, for every entry whose name matches CREDS_VALUE, calls gssx_dec_linux_creds() on the same struct svc_cred. That helper unconditionally installs a fresh groups_alloc() result into creds->cr_group_info without releasing whatever pointer was already there:

for (i = 0; i < count; i++) { ... decode name ... if (length == sizeof(CREDS_VALUE) && memcmp(p, CREDS_VALUE, sizeof(CREDS_VALUE)) == 0) { err = gssx_dec_linux_creds(xdr, creds); ... } }

A reply that carries two CREDS_VALUE entries therefore overwrites cr_group_info on the second iteration and orphans the group_info allocated by the first call. The earlier free_creds path only releases the last cr_group_info via free_svc_cred(), so the first allocation's refcount stays at one and its kvmalloc-backed storage is leaked. No in-tree caller of gssp_accept_sec_context_upcall() expects more than one CREDS_VALUE per reply.

Fix by tracking whether a CREDS_VALUE option has already been decoded and returning -EINVAL on any subsequent match, so the free_creds path releases the single group_info that was installed.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1d658336b05f8697d6445834f8867f8ad5e4f735 to before 6207d7df96b3a7f507f0bfc8842b3760ee2fb1f8Affected
  • 1d658336b05f8697d6445834f8867f8ad5e4f735 to before 4904d61eb2e2bd484000725fd302b8f37b4fcf3aAffected
  • 1d658336b05f8697d6445834f8867f8ad5e4f735 to before 64b9ef369a6f723294613cb129e5f62c35429df5Affected
  • 1d658336b05f8697d6445834f8867f8ad5e4f735 to before 4b5ebb4f91a6152a0f7b1253f701197e5710d4daAffected
  • 1d658336b05f8697d6445834f8867f8ad5e4f735 to before f615b884310bf82d0014e3b5a92eb9aa88146685Affected
  • 1d658336b05f8697d6445834f8867f8ad5e4f735 to before 7a1d0501cbb962beba23377035d667bf3c1726eeAffected
  • 1d658336b05f8697d6445834f8867f8ad5e4f735 to before 9d94f046b23de0f77849ea69133063c949297e30Affected
  • 1d658336b05f8697d6445834f8867f8ad5e4f735 to before 2e4ce62385c1b8a887c5370af058ac7b52a8eaf9Affected
LinuxLinux
  • 3.10Affected
  • before 3.10Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.