CVE-2026-31402
nfsd: Behebung eines Heap-Overflows im NFSv4.0-LOCK-Replay-Cache
- Veröffentlicht
- 03.04.2026
- Aktualisiert
- 08.09.2026
- CNA zuweisen
- Linux
- Beweise beobachtet
- 19.08.2026
Primäres CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNiedrig · nächste 30 Tage
- Perzentil
- 59,2 %
- Modelldatum
- 21.09.2026
EPSS ist eine statistische Schätzung, keine Gewissheit oder ein Maß für die Auswirkung. Kombinieren Sie es mit CVSS, KEV-Status, Belichtung und Ihrer Umgebung.
Zusammenfassung
Im Linux-Kernel wurde die folgende Schwachstelle behoben: nfsd: Behebung eines Heap-Overflows im NFSv4.0-LOCK-Replay-Cache Der NFSv4.0-Replay-Cache verwendet einen festen Inline-Puffer von 112 Byte (rp_ibuf[NFSD4_REPLAY_ISIZE]), um kodierte Operationsantworten zu speichern. Diese Größe wurde auf Basis von OPEN-Antworten berechnet und berücksichtigt keine LOCK-verweigerten Antworten, die den kollidierenden Lock-Besitzer als Feld mit variabler Länge von bis zu 1024 Byte (NFS4_OPAQUE_LIMIT) enthalten. Wenn eine LOCK-Operation aufgrund eines Konflikts mit einem bestehenden Lock mit großem Besitzer verweigert wird, kopiert nfsd4_encode_operation() die vollständig kodierte Antwort über read_bytes_from_xdr_buf() ohne Grenzprüfung in den zu kleinen Replay-Puffer. Dies führt zu einem Slab-Out-of-Bounds-Schreibzugriff von bis zu 944 Byte über das Ende des Puffers hinaus, wodurch angrenzender Heap-Speicher beschädigt wird. Dies kann remote von einem nicht authentifizierten Angreifer mit zwei kooperierenden NFSv4.0-Clients ausgelöst werden: Einer setzt einen Lock mit einer großen Besitzer-Zeichenkette, dann fordert der andere einen kollidierenden Lock an, um die Verweigerung auszulösen. Wir könnten dies beheben, indem wir NFSD4_REPLAY_ISIZE erhöhen, um einen vollständigen opaken Wert zu ermöglichen, aber das würde die Größe jedes Stateowners erhöhen, obwohl die meisten Lockowner nicht so groß sind. Stattdessen beheben wir dies, indem wir die Länge der kodierten Antwort vor dem Kopieren in den Replay-Puffer gegen NFSD4_REPLAY_ISIZE prüfen. Wenn die Antwort zu groß ist, setzen wir rp_buflen auf 0, um das Zwischenspeichern der Replay-Nutzlast zu überspringen. Der Status wird weiterhin zwischengespeichert, und der Client hat die korrekte Antwort bereits mit der ursprünglichen Anfrage erhalten.
Quellen
1- CVE-2026-31402Informativ
CVE-2026-31402
Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.