KernelScan.io

HIGH Introduced in 4.7

qrtr Namespace Bypass

CVE-2026-68294

CVSS 8.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

KernelScan AI7.8HIGH

01

In the Linux kernel, the following vulnerability has been resolved: net: qrtr: restrict socket creation to the initial network namespace QRTR keeps its entire port and node state in module-global variables that are not partitioned per network namespace: qrtr_local_nid is a single global node id (always 1) and qrtr_ports is a single global xarray. qrtr_port_lookup() and qrtr_local_enqueue() operate on that global state with no network-namespace check, and qrtr_create() places no restriction on the namespace a socket is created in. As a result an unprivileged process that creates an AF_QIPCRTR socket in a separate network namespace, e.g. via unshare(CLONE_NEWUSER | CLONE_NEWNET), can send QRTR datagrams - including control-plane messages such as QRTR_TYPE_NEW_SERVER - to QRTR sockets owned by another namespace, and vice versa. The receiving socket sees such a message as coming from node id 1, indistinguishable from a legitimate local client, breaking the isolation that network namespaces are expected to provide. QRTR is a transport to global hardware endpoints (the modem and other remote processors) and has no per-namespace semantics; its in-kernel name service already creates its socket in init_net only. Confine the socket family to the initial network namespace, as other non-namespace-aware socket families do (see llc_ui_create() and the ieee802154 socket code).

02

Engine v0.6.0

Risk summary

An unprivileged local user can create a QRTR socket in a user-created network namespace and send control-plane messages to sockets in other namespaces, breaking network namespace isolation. This allows cross-namespace communication and potential interference with modem/remote-processor services. The fix restricts QRTR socket creation to the initial network namespace only.

Affectednet/qrtr/af_qrtr.c (qrtr)

Vulnerability analysis

The QRTR IPC router protocol keeps all port and node state in module-global variables that are not partitioned per network namespace, but socket creation was allowed from any namespace. An unprivileged process that creates a new network namespace via user namespaces can open a QRTR socket and send datagrams—including control-plane messages like new-server announcements—to QRTR sockets in other namespaces, which appear indistinguishable from legitimate local clients. This breaks the isolation guarantee that network namespaces are supposed to provide. The fix restricts QRTR socket creation to the initial network namespace only, preventing non-init namespaces from reaching the global QRTR control plane. The vulnerability is reachable by any unprivileged local user on systems where user namespaces are enabled and the QRTR module is loaded (typically Qualcomm-based platforms with modem/remote-processor communication).

03

BranchIntroducedFixed inPatch commit
5.104.75.10.2657814f6a3415c
5.154.75.15.2162d22b94a154c
6.14.76.1.1838d351fe0654a
6.124.76.12.101f488116df769
6.184.76.18.428150c48fb978
6.64.76.6.1484b95e1f0d6e6
7.14.77.1.6659b9b4f194b
mainline4.77.23b536db8fb32
cip/4.194.74.19.325-cip136e23caba3fe2e
cip/4.19-rt4.74.19.325-cip136-rt50e23caba3fe2e
cip/5.104.75.10.268-cip777814f6a3415c
cip/5.10-rt4.75.10.268-cip77-rt347814f6a3415c
cip/6.14.76.1.187-cip608d351fe0654a
cip/6.1-rt4.76.1.189-cip61-rt328d351fe0654a
cip/6.124.76.12.101-cip29f488116df769

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.101-cip29
cip/6.1Fixed in 6.1.187-cip60
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.268-cip77
cip/5.10-rtFixed in 5.10.268-cip77-rt34
cip/4.19Fixed in 4.19.325-cip136
cip/4.19-rtFixed in 4.19.325-cip136-rt50