CVE-2026-64523 in Linux
Zusammenfassung
von VulDB • 27.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
net/handshake: Langzeitiges Dateireferenzierung beim Übermitteln (Submit) übernehmen
handshake_nl_accept_doit() benötigt einen Zeiger auf die Datei, die req->hr_sk->sk_socket unterstützt, damit dieser den Zeitraum zwischen handshake_req_next() und dem nachfolgenden FD_PREPARE() sowie get_file() übersteht. Der sock_hold()-Aufruf auf der Übermittlungsseite (Submit-Seite) bietet diesen Schutz nicht. sk_refcnt hält struct sock am Leben, aber struct socket wird von sock->file besessen: Wenn der Verbraucher die letzte Dateireferenz freigibt („fputs"), führt sock_release() den Socket-Zerfall unabhängig von jedem sock_hold durch.
Fügen Sie hr_file als Zeiger zu struct handshake_req hinzu und erwerben Sie eine explizite Referenz auf sock->file während handshake_req_submit(). handshake_complete() und handshake_req_cancel() geben die Referenz im Pfad, der das Completion-Bit gewinnt, wieder frei.
Der Fehlerpfad beim Übermitteln (Submit) muss ebenfalls die Dateireferenz freigeben, doch nach dem Einfügen in rhashtable kann ein gleichzeitiger handshake_req_cancel()-Aufruf die Anforderung entdecken und mit dem Fehlerpfad konkurrieren („Race"). Sichern Sie die Bereinigung des Fehlerpfads – Wiederherstellung von sk_destruct, fput und Zerstörung der Anforderung – mittels test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED), derselben Serialisierungshandshake-Methode, die handshake_complete() und handshake_req_cancel() bereits verwenden. Wenn cancel den Besitz bereits beansprucht hat, gibt der Fehlerpfad beim Übermitteln ohne Berührung der Anforderung zurück; der Socket-Zerfall übernimmt die endgültige Zerstörung.
Die Dereferenzierungen auf der Akzeptierseite (Accept-Seite) wurden noch nicht umgeleitet; diese Änderung erfolgt im nächsten Patch.
If you want to get best quality of vulnerability data, you may have to visit VulDB.