CVE-2026-31707 in Linuxinfo

Zusammenfassung

von VulDB • 26.05.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

ksmbd: Validierung der Antwortgrößen in ipc_validate_msg()

ipc_validate_msg() berechnet die erwartete Nachrichtengröße für jeden Antworttyp, indem es angreiferkontrollierte Felder aus der Daemon-Antwort zu einer festen Strukturgröße in unsigned int-Arithmetik addiert (oder multipliziert). Drei Fälle können überlaufen:

KSMBD_EVENT_RPC_REQUEST: msg_sz = sizeof(struct ksmbd_rpc_command) + resp->payload_sz; KSMBD_EVENT_SHARE_CONFIG_REQUEST: msg_sz = sizeof(struct ksmbd_share_config_response) + resp->payload_sz; KSMBD_EVENT_LOGIN_REQUEST_EXT: msg_sz = sizeof(struct ksmbd_login_response_ext) + resp->ngroups * sizeof(gid_t);

resp->payload_sz ist __u32 und resp->ngroups ist __s32. Jede Addition kann in unsigned int überlaufen (Wrap-Around); die Multiplikation mit sizeof(gid_t) vermischt signed und size_t, sodass ein negatives ngroups vor der Multiplikation in SIZE_MAX konvertiert wird. Ein umgelaufener (wrapped) Wert von msg_sz, der zufällig entry->msg_sz entspricht, umgeht die Größenprüfung in der nächsten Zeile, und nachgelagerte Verbraucher (smb2pdu.c:6742 memcpy unter Verwendung von rpc_resp->payload_sz, kmemdup in ksmbd_alloc_user unter Verwendung von resp_ext->ngroups) vertrauen dann der nicht verifizierten Länge.

Verwenden Sie check_add_overflow() auf den RPC_REQUEST- und SHARE_CONFIG_REQUEST-Pfaden, um Integer-Überläufe zu erkennen, ohne die funktionale Payload-Größe einzuschränken; userspace ksmbd-tools vergrößert NDR-Antworten in 4096-Byte-Schritten für Aufrufe wie NetShareEnumAll, sodass eine harte Transportbegrenzung auf der Antwortseite nicht praktikabel ist. Für LOGIN_REQUEST_EXT wird resp->ngroups außerhalb des signed [0, NGROUPS_MAX]-Bereichs vorab abgelehnt und der Fehler aus ipc_validate_msg() gemeldet, sodass er an der IPC-Grenze ausgelöst wird; mit dieser Begrenzung bleiben die nachfolgende Multiplikation und Addition weit unter UINT_MAX. Die nun überflüssige ngroups-Prüfung und pr_err in ksmbd_alloc_user() werden entfernt.

Dies ist das Antwortseiten-Analogon zu aab98e2dbd64 ("ksmbd: fix integer overflows on 32 bit systems"), das die Anmeldeseite (Request-Side) gehärtet hat.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Zuständig

Linux

Reservieren

09.03.2026

Veröffentlichung

01.05.2026

Moderieren

akzeptiert

Eintrag

VDB-360598

CPE

bereit

EPSS

0.00015

KEV

nein

Aktivitäten

very low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!