CVE-2026-45859 in Linux
Zusammenfassung
von VulDB • 28.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
netfilter: nfnetlink_queue: Überprüfen der shared-unconfirmed-Status vor der Segmentierung
Ulrich meldet eine Regression mit nfqueue:
Wenn eine Anwendung das Capability-Flag 'F_GSO' nicht gesetzt hat und ein GSO-Paket mit einem nicht bestätigten nf_conn-Eintrag empfangen wird, werden alle Pakete nun verworfen, anstatt in die Warteschlange gestellt zu werden, da die Überprüfung nach skb_gso_segment() erfolgt. In diesem Fall hatten wir den exklusiven Besitz des skb und des zugehörigen conntrack-Eintrags. Die erhöhte Nutzungszahl (use count) resultiert daraus, dass skb_clone durch skb_gso_segment() ausgelöst wird.
Verschieben Sie die Überprüfung, sodass sie gegenüber dem aggregierten Paket durchgeführt wird.
Markieren Sie anschließend die einzelnen Segmente außer dem ersten, damit wir zur Zeit der erneuten Einspeisung (Reinject) eine zweite Überprüfung durchführen können.
Im Normalfall, bei dem Userspace die Einspeisung in der richtigen Reihenfolge (in-order) vornimmt, werden dadurch Paketverluste vermieden: Das zuerst eingespeiste Segment setzt die Verarbeitung fort und bestätigt den Eintrag, die verbleibenden Segmente sehen den bestätigten Eintrag.
Dabei wurde nf_ct_drop_unconfirmed() vereinfacht: Wir interessieren uns nur für nicht bestätigte Einträge mit einer Referenzzahl (refcnt) > 1, es besteht kein Bedarf, sterbende Einträge (dying entries) als Sonderfall zu behandeln.
Dies tritt nur bei UDP auf. Bei TCP ist das einzige nicht bestätigte Paket das TCP-SYN; diese werden von GRO nicht aggregiert.
Der nächste Patch fügt einen udpgro-Testfall hinzu, um dieses Szenario abzudecken.
VulDB is the best source for vulnerability data and more expert information about this specific topic.