{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-43469",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-43469"
  ],
  "published": "2026-05-08T14:22:57Z",
  "summary": "xprtrdma: Decrement re_receiving on the early exit paths",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nxprtrdma: Decrement re_receiving on the early exit paths\n\nIn the event that rpcrdma_post_recvs() fails to create a work request\n(due to memory allocation failure, say) or otherwise exits early, we\nshould decrement ep->re_receiving before returning. Otherwise we will\nhang in rpcrdma_xprt_drain() as re_receiving will never reach zero and\nthe completion will never be triggered.\n\nOn a system with high memory pressure, this can appear as the following\nhung task:\n\n    INFO: task kworker/u385:17:8393 blocked for more than 122 seconds.\n          Tainted: G S          E       6.19.0 #3\n    \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n    task:kworker/u385:17 state:D stack:0     pid:8393  tgid:8393  ppid:2      task_flags:0x4248060 flags:0x00080000\n    Workqueue: xprtiod xprt_autoclose [sunrpc]\n    Call Trace:\n     <TASK>\n     __schedule+0x48b/0x18b0\n     ? ib_post_send_mad+0x247/0xae0 [ib_core]\n     schedule+0x27/0xf0\n     schedule_timeout+0x104/0x110\n     __wait_for_common+0x98/0x180\n     ? __pfx_schedule_timeout+0x10/0x10\n     wait_for_completion+0x24/0x40\n     rpcrdma_xprt_disconnect+0x444/0x460 [rpcrdma]\n     xprt_rdma_close+0x12/0x40 [rpcrdma]\n     xprt_autoclose+0x5f/0x120 [sunrpc]\n     process_one_work+0x191/0x3e0\n     worker_thread+0x2e3/0x420\n     ? __pfx_worker_thread+0x10/0x10\n     kthread+0x10d/0x230\n     ? __pfx_kthread+0x10/0x10\n     ret_from_fork+0x273/0x2b0\n     ? __pfx_kthread+0x10/0x10\n     ret_from_fork_asm+0x1a/0x30",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/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.167",
            "compiled_filter": false
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-43469"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/7ea69259a60a364f56cf4aa9e2eafb588d1c762b"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/8cb6b5d8296b1f99a8d36849901ebabfe3f749db"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/74c39a47856bddcde7874f2196a00143b5cd0af9"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/49f53ee4e25297d886f14e31f355ad1c2735ddfb"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/8127b5fec04757c2a41ed65bca0b3266968efd3b"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/dc3ebd7e2d73dbd4d317785735ffa6c4a6384ddf"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/7b6275c80a0c81c5f8943272292dfe67730ce849"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-05T13:16:28Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 7.5,
      "cvss_v3_severity": "High",
      "scenario": "AV:N - The vulnerable function is reached from the RPC-over-RDMA client receive completion path while processing network-delivered RDMA replies from an NFS/RDMA peer. A malicious or compromised remote NFS/RDMA server can influence the receive repost path via reply traffic and credit grants.\nAC:L - The trigger is a deterministic accounting bug on early exits from receive reposting, and a peer can drive reply bursts, high credit grants, and disconnect/reconnect behavior to reach the path. Although memory pressure can help expose one early exit, the rule requires choosing the higher severity option when uncertain.\nPR:N - The remote peer sending RDMA replies does not need privileges on the affected client. The client must already be using an NFS/RDMA transport, but the attacker-side protocol traffic itself is not gated by local kernel privileges.\nUI:N - In a reasonable deployed scenario, the client already has an active NFS/RDMA mount and normal RPC traffic reaches the vulnerable receive path without a further victim action. Exploitation can be driven by the remote peer during ordinary mounted filesystem operation.\nS:U - The effect is confined to the Linux kernel/RPC transport on the same host. It does not cross a separate security authority such as a VM, IOMMU, or sandbox boundary.\nC:N - The bug is a leaked receive-drain accounting reference, not memory corruption or an information disclosure primitive. The investigated paths indicate a hang in disconnect/drain handling rather than exposure of kernel memory.\nI:N - The issue does not provide data modification, arbitrary write, or control-flow manipulation. It only prevents receive-drain completion after the counter is left elevated.\nA:H - The leaked re_receiving count can make rpcrdma_xprt_drain wait forever, producing stuck xprtiod/autoclose work and hung kernel tasks. This is a kernel-level availability failure for the affected NFS/RDMA transport and can persist until recovery or reboot."
    }
  }
}
