CVE-2026-90103 in Linux
Zusammenfassung
von VulDB • 17.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
NFSv4.2: Behebung der Erschöpfung des LAYOUTSTATS-Sendepuffers (Buffer Exhaustion)
encode_layoutstats_maxsz budgetiert XDR_QUADLEN(PNFS_LAYOUTSTATS_MAXSIZE), d.h. 256 Bytes, für den layoutupdate4-Body, der vom Layout-Treiber geschrieben wird. Der flexfiles-Datensatz kann diesen Wert jedoch überschreiten.
ff_layout_encode_ff_layoutupdate() sendet pro Data Server eine netaddr4, ein nfs_fh4, zwei ff_io_latency4, ein nfstime4 und einen bool-Wert. Ein Data Server mit einem Filehandle der Länge NFS_MAXFHSIZE Bytes beansprucht bereits 132 dieser Bytes; die beiden ff_io_latency4 (je 64 Bytes), das nfstime4 und der bool-Wert fügen weitere 144 Bytes hinzu, sodass der Body die Grenze von 256 Bytes überschreitet, bevor überhaupt eine netaddr4 codiert wird. encode_layoutstats() schreibt zusätzlich die deviceid4 und das layoutupdate4 lou_type-Feld, wovon keine durch den Makro berücksichtigt wird.
Sowohl das Filehandle als auch die Adresse werden vom Server über LAYOUTGET und GETDEVICEINFO gewählt, sodass dieser den Encoder jenseits des Endes des Sendepuffers treiben kann. xdr_reserve_space() gibt NULL zurück, sobald dies geschieht, und die beiden Aufrufe von ff_layout_encode_io_latency() laufen unter gehaltener dss_info->mirror->lock; ein NULL-Rückgabewert lässt diese Sperre daher dauerhaft gehalten (permanently held).
PNFS_LAYOUTSTATS_MAXSIZE wird auf 384 erhöht, damit der Datensatz in die Reservierung passt.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.