{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-72299",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-72299"
  ],
  "published": "2026-08-15T06:04:33Z",
  "summary": "tipc: restrict socket queue dumps in enqueue tracepoints",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: restrict socket queue dumps in enqueue tracepoints\n\ntipc_sk_enqueue() runs with sk->sk_lock.slock held while the socket is\nowned by user context. The spinlock protects the backlog queue in this\npath, but it does not serialize against the socket owner consuming or\npurging sk_receive_queue.\n\nKASAN reported:\n\n  CPU: 14 UID: 0 PID: 1050 Comm: tipc3 Not tainted 7.1.0-rc6+ #126 PREEMPT(lazy)\n  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014\n  Call Trace:\n    <TASK>\n    dump_stack_lvl+0x76/0xa0 lib/dump_stack.c:123\n    print_report+0xce/0x5b0 mm/kasan/report.c:482\n    kasan_report+0xc6/0x100 mm/kasan/report.c:597\n    __asan_report_load4_noabort+0x14/0x30 mm/kasan/report_generic.c:380\n    tipc_skb_dump+0x1327/0x16f0 net/tipc/trace.c:73\n    tipc_list_dump+0x208/0x2e0 net/tipc/trace.c:187\n    tipc_sk_dump+0xaf6/0xd60 net/tipc/socket.c:3996\n    trace_event_raw_event_tipc_sk_class+0x312/0x5a0 net/tipc/trace.h:188\n    tipc_sk_rcv+0xb1d/0x1d50 net/tipc/socket.c:2497\n    tipc_node_xmit+0x1c3/0x1440 net/tipc/node.c:1689\n    __tipc_sendmsg+0x97a/0x1440 net/tipc/socket.c:1512\n    tipc_sendmsg+0x52/0x80 net/tipc/socket.c:1400\n    sock_sendmsg+0x2f6/0x3e0 net/socket.c:825\n    splice_to_socket+0x7f9/0x1010 fs/splice.c:884\n    do_splice+0xe21/0x2330 fs/splice.c:936\n    __do_splice+0x153/0x260 fs/splice.c:1431\n    __x64_sys_splice+0x150/0x230 fs/splice.c:1616\n    x64_sys_call+0xeb5/0x2790 arch/x86/entry/syscall_64.c:41\n    do_syscall_64+0xf3/0x620 arch/x86/entry/syscall_64.c:63\n    entry_SYSCALL_64_after_hwframe+0x76/0x7e arch/x86/entry/entry_64.S:130\n  RIP: 0033:0x71624e8aafe2\n  Code: 08 0f 85 71 3a ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 66 2e 0f 1f 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 66\n  RSP: 002b:0000716157ffed68 EFLAGS: 00000246 ORIG_RAX: 0000000000000113\n  RAX: ffffffffffffffda RBX: 0000716157fff6c0 RCX: 000071624e8aafe2\n  RDX: 000000000000005f RSI: 0000000000000000 RDI: 0000000000000066\n  RBP: 0000716157ffed90 R08: 0000000000008000 R09: 0000000000000001\n  R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffff00\n  R13: 0000000000000021 R14: 0000000000000000 R15: 00007fff89799c40\n    </TASK>\n\nThe TIPC_DUMP_ALL tracepoints in tipc_sk_enqueue() also dump\nsk_receive_queue and can therefore dereference skbs that the socket\nowner has already dequeued or freed. Restrict these dumps to\nTIPC_DUMP_SK_BKLGQ, which matches the queue protected by the held\nspinlock.\n\nKeep the change limited to the enqueue path, where the unsafe queue dump\nis reachable while the socket is owned by user context.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.1.47-1+rpt4"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-2712",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v6",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7l",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v8",
            "binary_version": "1:6.1.47-1+rpt4"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.1.47-1+rpt4": {
            "linux_commit": "655fc658a15ae7a6f37103754adb39ba52a9a14e",
            "upstream_version": "6.1.47",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.184",
            "compiled_filter": false
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-72299"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/ae5d0d9ce767b20a5580bb6dc5e06f3e1b8a0fb0"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/273ff83c49b82e4267373adbe629e6ee8aeaa16c"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/258fb15b30db4f3941ab335d5e02f744baf1da54"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/12876864f9de5fa6f611a30c6c17e405a773bf0a"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/b9e100815f4b55e9ccaf6af9a3aba173eb13d381"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/61a55fa24a5d737436018764a647fe5b6cb36371"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/6acbbe54215d5f4251593000cff2bf51d6748713"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/acd7df8d955480a6f6e5bb809da67b1500cc3cf4"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-23T12:46:35Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 9.8,
      "cvss_v3_severity": "Critical",
      "scenario": "AV:N - tipc_sk_enqueue() is invoked from tipc_sk_rcv() on inbound TIPC traffic (tipc_rcv()/tipc_link_rcv() from UDP/Ethernet bearers) and on loopback xmit; a remote cluster peer can deliver packets that hit the enqueue trace path while the destination socket is user-owned.\nAC:L - This is a controllable race between enqueue-time TIPC_DUMP_ALL trace dumps of sk_receive_queue and the socket owner dequeuing/freeing those skbs; the attacker drives both sides via concurrent recvmsg/splice/sendmsg threads or by flooding TIPC messages while a receiver holds lock_sock().\nPR:N - TIPC data-plane delivery to an existing socket/port needs no authentication or victim credentials; any local user may open AF_TIPC sockets (including via user namespaces with CAP_NET_ADMIN), and default sk_filter sysctl matches all sockets once trace events are enabled.\nUI:N - Exploitation needs no victim interaction beyond normal socket/cluster I/O; the attacker controls message injection and thread timing without requiring mounts, prompts, or other deliberate user actions.\nS:U - The flaw is a kernel sk_buff use-after-free in the TIPC socket path and its impact stays within the kernel security authority; it does not by itself cross VM, IOMMU, or hypervisor isolation boundaries.\nC:H - KASAN reported __asan_report_load4 in tipc_skb_dump() reading freed skb/message fields from sk_receive_queue; this UAF read of attacker-influenced heap objects can disclose kernel memory and supports further info-leak exploitation.\nI:H - Concurrent enqueue tracing walks queue pointers while skbs are freed by the socket owner, creating a classic UAF on sk_buff slabs that can be groomed for arbitrary kernel memory corruption and privilege escalation.\nA:H - Dereferencing freed skbs during tipc_list_dump()/tipc_skb_dump() can oops or panic the kernel; UAF in the TIPC receive/enqueue path is a high-availability risk even when not fully weaponized for code execution."
    }
  }
}
