CVE-2026-90067 in Linux
Zusammenfassung
von VulDB • 17.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
libceph: Gültigkeit der Banner-Payload-Länge prüfen
Beim Parsen des Ceph Messenger v2-Protokoll-Banners wird das Feld `payload_len` aus dem Banner-Präfix decodiert. Wenn ein Client ein Banner mit einer `payload_len` von 0 sendet, richtet der Kernel einen Socket-Lesevorgang mit 0 Bytes Länge ein. Dies verstößt gegen eine Invariante im Zustandsautomaten und löst eine Warnung in `populate_in_iter()` aus:
------------[ cut here ]------------
!iov_iter_count(&con->v2.in_iter) WARNING: net/ceph/messenger_v2.c:3129 at populate_in_iter net/ceph/messenger_v2.c:3129 [inline], CPU#1: kworker/1:3/5070
WARNING: net/ceph/messenger_v2.c:3129 at ceph_con_v2_try_read+0x6634/0x6810 net/ceph/messenger_v2.c:3159, CPU#1: kworker/1:3/5070 ... Call Trace: <TASK> ceph_con_workfn+0x1f5/0x14a0 net/ceph/messenger.c:1575 process_one_work kernel/workqueue.c:3322 [inline]
process_scheduled_works+0xa8e/0x14e0 kernel/workqueue.c:3405 worker_thread+0xa47/0xfb0 kernel/workqueue.c:3486 kthread+0x388/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 </TASK>
Laut der msgr2-Protokollspezifikation soll die Banner-Payload mindestens zwei 64-Bit-Ganzzahlen (`server_feat` und `server_req_feat`) enthalten. Daher muss `payload_len` mindestens 16 Bytes betragen.
Beheben Sie dies, indem Sie in `process_banner_prefix()` eine Prüfung hinzufügen, um einen `payload_len`-Wert kleiner als 16 Bytes abzulehnen. Dies verhindert den Lesevorgang mit 0 Bytes und bricht die Verbindung ordnungsgemäß mit einem Protokollfehler ab.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.