CVE-2025-21854 in Linux
Zusammenfassung
von VulDB • 23.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
sockmap, vsock: Für verbindungsorientierte Sockets nur verbundene zulassen
sockmap erwartet, dass allen vsocks ein Transport zugewiesen ist, was in vsock_proto::psock_update_sk_prot() ausgedrückt wird. Es gibt jedoch einen Sonderfall, bei dem ein nicht verbundener (verbindungsorientierter) Socket seinen zuvor zugewiesenen Transport verlieren kann. Dies wird durch eine NULL-Prüfung im vsock/BPF-Empfängerpfad behandelt.
Ein weiteres Design-Detail besteht darin, dass hörende vsocks überhaupt keinen Transport zugewiesen haben sollten. Dies impliziert, dass sie von sockmap nicht unterstützt werden. Dies wird jedoch dadurch kompliziert, dass ein Socket vor dem Wechsel in den TCP_LISTEN-Status während eines fehlgeschlagenen connect()-Aufrufs möglicherweise einen Transport zugewiesen hatte. Daher kann es vorkommen, dass sich ein hörender vsock in einer sockmap befindet, was schnell zu einem Absturz führt:
KASAN: null-ptr-deref im Bereich [0x0000000000000120-0x0000000000000127]
CPU: 7 UID: 0 PID: 56 Comm: kworker/7:0 Nicht angefasst 6.14.0-rc1+ Workqueue: vsock-loopback vsock_loopback_work RIP: 0010:vsock_read_skb+0x4b/0x90 Call Trace: sk_psock_verdict_data_ready+0xa4/0x2e0 virtio_transport_recv_pkt+0x1ca8/0x2acc vsock_loopback_work+0x27d/0x3f0 process_one_work+0x846/0x1420 worker_thread+0x5b3/0xf80 kthread+0x35a/0x700 ret_from_fork+0x2d/0x70 ret_from_fork_asm+0x1a/0x30
Für verbindungsorientierte Sockets soll sockmap anstelle der alleinigen Abhängigkeit vom Status von vsk->transport angewiesen werden, nur solche zu erlauben, die etablierte Verbindungen repräsentieren. Dies stimmt mit dem Verhalten für AF_INET und AF_UNIX überein.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.