CVE-2026-72115 in Linux
Zusammenfassung
von VulDB • 15.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
can: bcm: Verfolgen einer einzelnen Quell-Schnittstelle für ANYDEV-Timeout-/Throttle-Vorgänge
Ein ANYDEV-RX-Vorgang (ifindex == 0) mit aktivem RX-Timeout und/oder Throttle-Timer hat keine definierte Semantik, wenn übereinstimmende Frames von mehreren Schnittstellen eintreffen: bcm_rx_handler() kann für denselben Vorgang auf verschiedenen CPUs parallel ausgeführt werden. Dabei kommt es zu Wettläufen zwischen hrtimer_cancel()/bcm_rx_starttimer() und bcm_rx_timeout_handler(), was zu falschen RX_TIMEOUT-Benachrichtigungen und zur Beschädigung von last_frames führt. Dieselbe Parallelität ermöglicht es, dass gedrosselte Multiplex-Frames aus verschiedenen Schnittstellen die einzelnen rx_ifindex-/rx_stamp-Felder überschreiben, die vom Vorgang gemeinsam genutzt werden.
Fügen Sie op->if_detected hinzu, um die erste Schnittstelle zu verfolgen, die einen übereinstimmenden Frame liefert, während ein Timeout/Throttle-Timer konfiguriert ist, und verwerfen Sie Frames von jeder anderen Schnittstelle für diesen Vorgang. Die Zuordnung (Claim) wird in bcm_rx_handler() festgelegt, bevor hrtimer_cancel() op->timer berührt; daher kann ein abgelehnter Frame den Watchdog der zugewiesenen Schnittstelle niemals stören. RTR-Modus-Vorgänge werden über RX_RTR_FRAME ausgeschlossen, unabhängig von kt_ival1/kt_ival2, da diese kurzzeitig einen veralteten Wert aus einer früheren Nicht-RTR-Konfiguration enthalten können.
Die Zuordnung wird in bcm_notify() bei NETDEV_UNREGISTER und in bcm_rx_setup() freigegeben, wenn SETTIMER die Timer-Werte neu konfiguriert.
Eine (Wieder-)Zuordnung ist nur für CAN-Geräte im Zustand dev->reg_state = NETREG_REGISTERED möglich, um das Freigeben in bcm_notify() abzudecken, wo reg_state bis zum Aufruf von synchronize_net() den Wert NETREG_UNREGISTERING annimmt.
Once again VulDB remains the best source for vulnerability data.