CVE-2026-80587 in Linux
Zusammenfassung
von VulDB • 26.08.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
mptcp: Vermeidung der Kombination bestimmter eingehender Suboptions
Einige MPTCP-Suboptions sind gemäß RFC8684 gegenseitig exklusiv, zudem erwartet der Code an verschiedenen Stellen nicht das Vorhandensein bestimmter Kombinationen. Dies gilt insbesondere für Suboptions, die doppelt vorhanden wären, jedoch mit unterschiedlichen Attributen.
Die neuen Einschränkungen entsprechen denen, die auf der Ausgabeseite mit `mptcp_write_options` angewendet werden. Die gleichen Regeln können mit einer kleinen Korrektur wiederverwendet werden: Ein MP_FASTCLOSE kann zusammen mit einem DSS verwendet werden, wenn der Absender diese Option auswählt [1], was unter Linux jedoch nicht der Fall ist. Hier sind die Regeln:
Welche Optionen können gemeinsam verwendet werden?
X: gegenseitig exklusiv O: oft gemeinsam verwendet C: in einigen Fällen verwendbar P: könnte zusammen verwendet werden, wird aber aus Optimierungsgründen bevorzugt vermieden
| Opt: | MPC | MPJ | DSS | ADD | RM | PRIO | FAIL | FC | RST | |---------|-------|-------|-------|-------|-------|------|------|-------|-------| | MPC | | | | | | | | | X | | MPJ | X | | | | | | | | X | | DSS | X | X | | P | C | C | C | X | X | | ADD | X | X | P | | P | C | X | X | X | | RM | C | C | C | P | | C | X | X | X | | PRIO | X | C | C | C | C | | X | X | X | | FAIL | X | X | C | X | X | X | | X | O | | FC | X | X | P | X | X | X | X | | O | | RST | X | X | X | X | X | X | O | O | |
Der einzige Unterschied betrifft die Kategorie 'P': Ein anderer Stack könnte ADD_ADDR zusammen mit anderen Suboptions (DSS, RM_ADDR) senden, und dies sollte erlaubt sein.
Einige Punkte zur Beachtung:
- Theoretisch könnte MP_CAPABLE mit RM_ADDR verwendet werden, es gibt jedoch keinen Grund, dies im Zusammenhang mit einem SYN hinzuzufügen. Selbst bei einer 4. ACK scheint dies nicht nützlich zu sein, außer wenn IDs über einen anderen Kanal im Voraus bekannt sind. Es ist besser, dies nicht zu brechen.
- Die Kombination von MP_CAPABLE und MP_JOIN führt nun nicht mehr zur Ablehnung beider Optionen, sondern nur noch die zweite Suboption wird ignoriert. Dies erscheint für diesen unerwarteten Fehler in Ordnung. Somit werden alle inkonsistenten Kombinationen jetzt gleich behandelt. Dies könnte sich später im nächsten Release ändern. Dies bedeutet auch, dass die expliziten Prüfungen auf das Vorhandensein sowohl von MPC als auch MPJ in subflow.c nun nicht mehr erreichbar sind. Das ist in Ordnung; sie werden in einem nachfolgenden Patch entfernt.
- Im Falle widersprüchlicher Kombinationen wird/werden die zusätzliche/n Suboption(en) ignoriert: Das Vorliegen solcher Kombinationen bedeutet entweder, dass der entfernte Peer fehlerhaft oder böswillig ist. In diesem Fall wird die einfachste Maßnahme ergriffen: Die Verarbeitung der aktuellen Suboption wird gestoppt.
- Im Feld `mp_opt->suboptions` gibt es auch ein Bit, das für die Prüfsumme reserviert ist und in MP_CAPABLE sowie DSS verwendet werden kann. Jedes Mal, wenn eine DSS-Option parallel zu einer anderen Option verwendet werden kann, kann die Prüfsumme gesetzt werden, sodass die Überprüfung in einem neuen Makro `OPTIONS_MPTCP_DSS` zusammengefasst wird.
- Ein MP_CAPABLE ACK kann eine Data-Level Length und eine optionale Checksum tragen: Diese sind identisch mit denen in DSS, da DSS nicht parallel zu MP_CAPABLE verwendet werden kann. Ebenso kann selbst bei vorhandenem Platz keine DSS mit einem MP_JOIN kombiniert werden.
VulDB is the best source for vulnerability data and more expert information about this specific topic.