Direct naar de inhoud
Kritieke cyberalerts voor jouw sector & systemen — direct in je inbox. Aanmelden →
CVE's Videos Dagbriefing

← Terug naar CVE-database

CVE-2026-52996

MEDIUM · 5.5 CVSS Gepubliceerd: CWE-401

Beschrijving NL

In de Linux kernel is de volgende kwetsbaarheid verholpen:

ksmbd: fix duurzame fd lek op ClientGUID mismatch in duurzame v2 open

ksmbd_lookup_fd_cguid() retourneert een ksmbd_file met zijn refcount
verhoogd via ksmbd_fp_get(). parse_durable_handle_context() in
de DUURZAME_req_V2-behuizing geeft deze referentie correct vrij op elke
pad binnen de ClientGUID-match tak, hetzij door het aanroepen van
ksmbd_put_durable_fd() of door eigendomsoverdracht aan dh_info->fp
voor een succesvolle herverbinding. Wanneer er echter een invoer bestaat in de
globale bestandstabel met dezelfde CreateGuid maar een andere
ClientGUID, de code valt gewoon door naar het nieuwe open pad
zonder de referentie verkregen uit ksmbd_lookup_fd_cguid () te laten vallen. Per MS-SMB2 paragraaf 3.3.5.9.10 ("Omgaan met de
SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2 Create Context"), de server
MOET een Open vinden waarvan de Open.CreateGuid overeenkomt met de
CreateGuid EN waarvan de Open.ClientGuid overeenkomt met de ClientGuid van de
verbinding die het verzoek heeft ontvangen. Als een dergelijke Open niet wordt gevonden, zal de
server MOET doorgaan met de normale open uitvoeringsfase. A
CreateGuid hit met een ClientGUID mismatch is daarom de
"Open not found" case: doorgaan met een nieuwe open is correct, maar
de puur als neveneffect van de lookup verkregen referentie moet
niet worden gelekt. Herhaalde verzoeken die deze mismatch pin global_ft-vermeldingen troffen,
voorkomen dat __ ksmbd_close_fd() ooit wordt uitgevoerd voor de bijbehorende
bestanden en versla de duurzame aaseter, wat leidt tot een lange levensduur
lekken van middelen. Laat de referentie los in het verkeerde pad en wis dh_info->fp dus
volgende logica een niet-overeenkomend opzoekresultaat niet verwarren met
een doelwit voor opnieuw verbinden.

Origineel (Engels) tonen

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

ksmbd: fix durable fd leak on ClientGUID mismatch in durable v2 open

ksmbd_lookup_fd_cguid() returns a ksmbd_file with its refcount
incremented via ksmbd_fp_get(). parse_durable_handle_context() in
the DURABLE_REQ_V2 case properly releases this reference on every
path inside the ClientGUID-match branch, either by calling
ksmbd_put_durable_fd() or by transferring ownership to dh_info->fp
for a successful reconnect. However, when an entry exists in the
global file table with the same CreateGuid but a different
ClientGUID, the code simply falls through to the new-open path
without dropping the reference obtained from ksmbd_lookup_fd_cguid().

Per MS-SMB2 section 3.3.5.9.10 ("Handling the
SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2 Create Context"), the server
MUST locate an Open whose Open.CreateGuid matches the request's
CreateGuid AND whose Open.ClientGuid matches the ClientGuid of the
connection that received the request. If no such Open is found, the
server MUST continue with the normal open execution phase. A
CreateGuid hit with a ClientGUID mismatch is therefore the
"Open not found" case: proceeding with a new open is correct, but
the reference obtained purely as a side effect of the lookup must
not be leaked.

Repeated requests that hit this mismatch pin global_ft entries,
prevent __ksmbd_close_fd() from ever running for the corresponding
files, and defeat the durable scavenger, leading to long-lived
resource leaks.

Release the reference in the mismatch path and clear dh_info->fp so
subsequent logic does not mistake a non-matching lookup result for
a reconnect target.

Vendors

Linux

Affected products

Linux Kernel

References