[PATCH net v3 0/2] vsock: validate packet sources after bound lookup fallback
Daehyeon Ko <[email protected]>
| Newsgroups | dev.linux.lists.virtualization,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
Both virtio and VMCI look up connected sockets by the full tuple before falling back to a destination-only bound lookup. The fallback can select a non-listening socket without validating the packet source. V2 covered only the virtio path. Following Stefano's review, this series moves the source and transport validation into a documented AF_VSOCK helper and uses it for both virtio and VMCI. The VMCI patch checks both its bottom-half and deferred workqueue receive paths. The combined series was tested on x86_64 KASAN kernels. The original cross-UID virtio injection remained blocked in three boots, CID_LOCAL and CID_HOST loopback aliases passed, selected VSOCK selftests passed, and VMCI accepted a matched RST while rejecting a mismatched-context RST in three boots. All changed objects built without warnings under allmodconfig and allyesconfig with W=1. The current-tree guest-CID vhost probe could not be rerun because the test user lacks access to /dev/vhost-vsock. Changes in v3: - Move transport and source validation into vsock_check_source(). - Trust the internally generated source CID for the local transport. - Add VMCI validation in the bottom-half and workqueue receive paths. - Send the related virtio and VMCI fixes in one series. - Do not carry Bobby's v2 Reviewed-by because the helper and loopback logic changed; renewed review is requested. v2: https://lore.kernel.org/netdev/[email protected]/ v1: https://lore.kernel.org/netdev/[email protected]/ Daehyeon Ko (2): vsock/virtio: validate packet source for connected sockets vsock/vmci: validate packet source for connected sockets include/net/af_vsock.h | 3 +++ net/vmw_vsock/af_vsock.c | 32 +++++++++++++++++++++++++ net/vmw_vsock/virtio_transport_common.c | 3 ++- net/vmw_vsock/vmci_transport.c | 29 +++++++++++++++++----- 4 files changed, 60 insertions(+), 7 deletions(-) base-commit: 7cbfb180945ce529608e4d4e24a6d483699fab1e -- 2.54.0