GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2024-35894 (GCVE-0-2024-35894)

Vulnerability from cvelistv5 – Published: 2024-05-19 08:34 – Updated: 2026-08-05 11:30
VLAI
Title
mptcp: prevent BPF accessing lowat from a subflow socket.
Summary
In the Linux kernel, the following vulnerability has been resolved: mptcp: prevent BPF accessing lowat from a subflow socket. Alexei reported the following splat: WARNING: CPU: 32 PID: 3276 at net/mptcp/subflow.c:1430 subflow_data_ready+0x147/0x1c0 Modules linked in: dummy bpf_testmod(O) [last unloaded: bpf_test_no_cfi(O)] CPU: 32 PID: 3276 Comm: test_progs Tainted: GO 6.8.0-12873-g2c43c33bfd23 Call Trace: <TASK> mptcp_set_rcvlowat+0x79/0x1d0 sk_setsockopt+0x6c0/0x1540 __bpf_setsockopt+0x6f/0x90 bpf_sock_ops_setsockopt+0x3c/0x90 bpf_prog_509ce5db2c7f9981_bpf_test_sockopt_int+0xb4/0x11b bpf_prog_dce07e362d941d2b_bpf_test_socket_sockopt+0x12b/0x132 bpf_prog_348c9b5faaf10092_skops_sockopt+0x954/0xe86 __cgroup_bpf_run_filter_sock_ops+0xbc/0x250 tcp_connect+0x879/0x1160 tcp_v6_connect+0x50c/0x870 mptcp_connect+0x129/0x280 __inet_stream_connect+0xce/0x370 inet_stream_connect+0x36/0x50 bpf_trampoline_6442491565+0x49/0xef inet_stream_connect+0x5/0x50 __sys_connect+0x63/0x90 __x64_sys_connect+0x14/0x20 The root cause of the issue is that bpf allows accessing mptcp-level proto_ops from a tcp subflow scope. Fix the issue detecting the problematic call and preventing any action.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-05-23 17:19 UTC
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 124a4885b55f3039c697feb53edc5ad88bf21161 , < ee3c845787b621cfe82c2e52c513024a9d7a78f5 (git)
Affected: 5684ab1a0effbfeb706f47d85785f653005b97b1 , < 3ffb1ab698376f09cc33101c07c1be229389fe29 (git)
Affected: 5684ab1a0effbfeb706f47d85785f653005b97b1 , < fcf4692fa39e86a590c14a4af2de704e1d20a3b5 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.7
Unaffected: 0 , < 6.7 (semver)
Unaffected: 6.8.5 , ≤ 6.8.* (semver)
Unaffected: 6.9 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-35894",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-05-23T17:19:11.932851Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:34:48.035Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-03-21T18:03:47.343Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/3ffb1ab698376f09cc33101c07c1be229389fe29"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/fcf4692fa39e86a590c14a4af2de704e1d20a3b5"
          },
          {
            "url": "https://security.netapp.com/advisory/ntap-20250321-0002/"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/mptcp/sockopt.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ee3c845787b621cfe82c2e52c513024a9d7a78f5",
              "status": "affected",
              "version": "124a4885b55f3039c697feb53edc5ad88bf21161",
              "versionType": "git"
            },
            {
              "lessThan": "3ffb1ab698376f09cc33101c07c1be229389fe29",
              "status": "affected",
              "version": "5684ab1a0effbfeb706f47d85785f653005b97b1",
              "versionType": "git"
            },
            {
              "lessThan": "fcf4692fa39e86a590c14a4af2de704e1d20a3b5",
              "status": "affected",
              "version": "5684ab1a0effbfeb706f47d85785f653005b97b1",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/mptcp/sockopt.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.7"
            },
            {
              "lessThan": "6.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8.5",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: prevent BPF accessing lowat from a subflow socket.\n\nAlexei reported the following splat:\n\n WARNING: CPU: 32 PID: 3276 at net/mptcp/subflow.c:1430 subflow_data_ready+0x147/0x1c0\n Modules linked in: dummy bpf_testmod(O) [last unloaded: bpf_test_no_cfi(O)]\n CPU: 32 PID: 3276 Comm: test_progs Tainted: GO       6.8.0-12873-g2c43c33bfd23\n Call Trace:\n  \u003cTASK\u003e\n  mptcp_set_rcvlowat+0x79/0x1d0\n  sk_setsockopt+0x6c0/0x1540\n  __bpf_setsockopt+0x6f/0x90\n  bpf_sock_ops_setsockopt+0x3c/0x90\n  bpf_prog_509ce5db2c7f9981_bpf_test_sockopt_int+0xb4/0x11b\n  bpf_prog_dce07e362d941d2b_bpf_test_socket_sockopt+0x12b/0x132\n  bpf_prog_348c9b5faaf10092_skops_sockopt+0x954/0xe86\n  __cgroup_bpf_run_filter_sock_ops+0xbc/0x250\n  tcp_connect+0x879/0x1160\n  tcp_v6_connect+0x50c/0x870\n  mptcp_connect+0x129/0x280\n  __inet_stream_connect+0xce/0x370\n  inet_stream_connect+0x36/0x50\n  bpf_trampoline_6442491565+0x49/0xef\n  inet_stream_connect+0x5/0x50\n  __sys_connect+0x63/0x90\n  __x64_sys_connect+0x14/0x20\n\nThe root cause of the issue is that bpf allows accessing mptcp-level\nproto_ops from a tcp subflow scope.\n\nFix the issue detecting the problematic call and preventing any action."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable path is entered from a local syscall \u2014 `connect()`/`listen()` on an `IPPROTO_MPTCP` socket triggers the cgroup sock_ops hook on the grafted subflow before any packet is exchanged. No remote peer data is required to reach `mptcp_set_rcvlowat()` with the wrong sock type.\nAC:L - The type confusion is deterministic \u2014 no race and no memory-layout guessing is needed to reach it; creating an MPTCP socket and connecting reproduces it every time (as the BPF selftest did). Attack-relevant heap state (subflow send queue contents) is itself attacker-controlled.\nPR:L - On a realistic container/Kubernetes host that already has an administrator-installed cgroup sock_ops BPF program adjusting socket options, an ordinary unprivileged user needs no capability at all: `socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP)` requires no privilege and `connect()` drives the confusion.\nUI:N - The attacker triggers the bug entirely through their own syscalls on their own socket. No action by any other user or administrator is needed at exploitation time.\nS:U - The corruption stays within the kernel\u0027s own security authority \u2014 there is no VM, IOMMU, or sandbox boundary crossed. This is a standard in-kernel type confusion.\nC:H - Type confusion between `struct mptcp_sock` and `struct tcp_sock` causes pointers to be synthesized from unrelated socket memory and dereferenced, and the resulting `sk_rcvbuf`/`window_clamp` corruption at attacker-influenced addresses can be groomed into a read primitive. Per kernel scoring guidance, memory corruption leveragable for disclosure is High.\nI:H - `mptcp_for_each_subflow()` iterates a list head read out of type-confused memory and performs `WRITE_ONCE(ssk-\u003esk_rcvbuf, space)` plus `tcp_sk(ssk)-\u003ewindow_clamp = val` through the resulting wild pointer, giving two 32-bit writes with attacker-influenced values at attacker-influenceable addresses \u2014 a control-flow-hijack-capable primitive.\nA:H - The confusion reliably produces a kernel oops: `do_div()` on the aliased `scaling_ratio` byte faults if it reads zero, and `lock_sock_fast()` on the bogus subflow pointer (typically a timestamp-derived non-canonical address) causes a general protection fault, plus the reported `WARN_ON_ONCE` panics under `panic_on_warn`."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:30:46.642Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ee3c845787b621cfe82c2e52c513024a9d7a78f5"
        },
        {
          "url": "https://git.kernel.org/stable/c/3ffb1ab698376f09cc33101c07c1be229389fe29"
        },
        {
          "url": "https://git.kernel.org/stable/c/fcf4692fa39e86a590c14a4af2de704e1d20a3b5"
        }
      ],
      "title": "mptcp: prevent BPF accessing lowat from a subflow socket.",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-35894",
    "datePublished": "2024-05-19T08:34:49.504Z",
    "dateReserved": "2024-05-17T13:50:33.113Z",
    "dateUpdated": "2026-08-05T11:30:46.642Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-35894",
      "date": "2026-09-19",
      "epss": "0.00222",
      "percentile": "0.13039"
    },
    "fkie_nvd": {
      "configurations": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "matchCriteriaId": "DBD6C99E-4250-4DFE-8447-FF2075939D10",
                  "versionEndExcluding": "6.8.5",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*",
                  "matchCriteriaId": "22BEDD49-2C6D-402D-9DBF-6646F6ECD10B",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*",
                  "matchCriteriaId": "DF73CB2A-DFFD-46FB-9BFE-AA394F27EA37",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: prevent BPF accessing lowat from a subflow socket.\n\nAlexei reported the following splat:\n\n WARNING: CPU: 32 PID: 3276 at net/mptcp/subflow.c:1430 subflow_data_ready+0x147/0x1c0\n Modules linked in: dummy bpf_testmod(O) [last unloaded: bpf_test_no_cfi(O)]\n CPU: 32 PID: 3276 Comm: test_progs Tainted: GO       6.8.0-12873-g2c43c33bfd23\n Call Trace:\n  \u003cTASK\u003e\n  mptcp_set_rcvlowat+0x79/0x1d0\n  sk_setsockopt+0x6c0/0x1540\n  __bpf_setsockopt+0x6f/0x90\n  bpf_sock_ops_setsockopt+0x3c/0x90\n  bpf_prog_509ce5db2c7f9981_bpf_test_sockopt_int+0xb4/0x11b\n  bpf_prog_dce07e362d941d2b_bpf_test_socket_sockopt+0x12b/0x132\n  bpf_prog_348c9b5faaf10092_skops_sockopt+0x954/0xe86\n  __cgroup_bpf_run_filter_sock_ops+0xbc/0x250\n  tcp_connect+0x879/0x1160\n  tcp_v6_connect+0x50c/0x870\n  mptcp_connect+0x129/0x280\n  __inet_stream_connect+0xce/0x370\n  inet_stream_connect+0x36/0x50\n  bpf_trampoline_6442491565+0x49/0xef\n  inet_stream_connect+0x5/0x50\n  __sys_connect+0x63/0x90\n  __x64_sys_connect+0x14/0x20\n\nThe root cause of the issue is that bpf allows accessing mptcp-level\nproto_ops from a tcp subflow scope.\n\nFix the issue detecting the problematic call and preventing any action."
        },
        {
          "lang": "es",
          "value": "En el kernel de Linux se ha resuelto la siguiente vulnerabilidad: mptcp: impide que BPF acceda a lowat desde un socket de subflujo. Alexei inform\u00f3 el siguiente s\u00edmbolo: ADVERTENCIA: CPU: 32 PID: 3276 en net/mptcp/subflow.c:1430 subflow_data_ready+0x147/0x1c0 M\u00f3dulos vinculados en: ficticio bpf_testmod(O) [\u00faltima descarga: bpf_test_no_cfi(O)] CPU: 32 PID: 3276 Comunicaciones: test_progs Contaminado: GO 6.8.0-12873-g2c43c33bfd23 Seguimiento de llamadas:  mptcp_set_rcvlowat+0x79/0x1d0 sk_setsockopt+0x6c0/0x1540 __bpf_setsockopt+0x6f/0x90 ock_ops_setsockopt+0x3c/0x90 bpf_prog_509ce5db2c7f9981_bpf_test_sockopt_int+0xb4/0x11b bpf_prog_dce07e362d941d2b_bpf_test_socket_sockopt+0x12b /0x132 bpf_prog_348c9b5faaf10092_skops_sockopt+0x954/0xe86 __cgroup_bpf_run_filter_sock_ops+0xbc/0x250 tcp_connect+0x879/0x1160 tcp_v6_connect+0x50c/0x870 x129/0x280 __inet_stream_connect+0xce/0x370 inet_stream_connect+0x36/0x50 bpf_trampoline_6442491565+0x49/0xef inet_stream_connect+0x5/0x50 __sys_connect+0x63 /0x90 __x64_sys_connect+0x14/0x20 La causa principal del problema es que bpf permite acceder a proto_ops de nivel mptcp desde un alcance de subflujo tcp. Solucione el problema al detectar la llamada problem\u00e1tica y evitar cualquier acci\u00f3n."
        }
      ],
      "id": "CVE-2024-35894",
      "lastModified": "2024-12-30T17:09:05.570",
      "metrics": {
        "cvssMetricV31": [
          {
            "cvssData": {
              "attackComplexity": "LOW",
              "attackVector": "LOCAL",
              "availabilityImpact": "HIGH",
              "baseScore": 7.8,
              "baseSeverity": "HIGH",
              "confidentialityImpact": "HIGH",
              "integrityImpact": "HIGH",
              "privilegesRequired": "LOW",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
              "version": "3.1"
            },
            "exploitabilityScore": 1.8,
            "impactScore": 5.9,
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      },
      "published": "2024-05-19T09:15:10.397",
      "references": [
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "tags": [
            "Patch"
          ],
          "url": "https://git.kernel.org/stable/c/3ffb1ab698376f09cc33101c07c1be229389fe29"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "tags": [
            "Patch"
          ],
          "url": "https://git.kernel.org/stable/c/ee3c845787b621cfe82c2e52c513024a9d7a78f5"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "tags": [
            "Patch"
          ],
          "url": "https://git.kernel.org/stable/c/fcf4692fa39e86a590c14a4af2de704e1d20a3b5"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "tags": [
            "Patch"
          ],
          "url": "https://git.kernel.org/stable/c/3ffb1ab698376f09cc33101c07c1be229389fe29"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "tags": [
            "Patch"
          ],
          "url": "https://git.kernel.org/stable/c/fcf4692fa39e86a590c14a4af2de704e1d20a3b5"
        }
      ],
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Analyzed",
      "weaknesses": [
        {
          "description": [
            {
              "lang": "en",
              "value": "NVD-CWE-noinfo"
            }
          ],
          "source": "nvd@nist.gov",
          "type": "Primary"
        }
      ]
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/mptcp/sockopt.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "ee3c845787b621cfe82c2e52c513024a9d7a78f5",
                    "status": "affected",
                    "version": "124a4885b55f3039c697feb53edc5ad88bf21161",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "3ffb1ab698376f09cc33101c07c1be229389fe29",
                    "status": "affected",
                    "version": "5684ab1a0effbfeb706f47d85785f653005b97b1",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "fcf4692fa39e86a590c14a4af2de704e1d20a3b5",
                    "status": "affected",
                    "version": "5684ab1a0effbfeb706f47d85785f653005b97b1",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "net/mptcp/sockopt.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.7"
                  },
                  {
                    "lessThan": "6.7",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.8.*",
                    "status": "unaffected",
                    "version": "6.8.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.9",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "DBD6C99E-4250-4DFE-8447-FF2075939D10",
                    "versionEndExcluding": "6.8.5",
                    "versionStartIncluding": "6.7",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*",
                    "matchCriteriaId": "22BEDD49-2C6D-402D-9DBF-6646F6ECD10B",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*",
                    "matchCriteriaId": "DF73CB2A-DFFD-46FB-9BFE-AA394F27EA37",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: prevent BPF accessing lowat from a subflow socket.\n\nAlexei reported the following splat:\n\n WARNING: CPU: 32 PID: 3276 at net/mptcp/subflow.c:1430 subflow_data_ready+0x147/0x1c0\n Modules linked in: dummy bpf_testmod(O) [last unloaded: bpf_test_no_cfi(O)]\n CPU: 32 PID: 3276 Comm: test_progs Tainted: GO       6.8.0-12873-g2c43c33bfd23\n Call Trace:\n  \u003cTASK\u003e\n  mptcp_set_rcvlowat+0x79/0x1d0\n  sk_setsockopt+0x6c0/0x1540\n  __bpf_setsockopt+0x6f/0x90\n  bpf_sock_ops_setsockopt+0x3c/0x90\n  bpf_prog_509ce5db2c7f9981_bpf_test_sockopt_int+0xb4/0x11b\n  bpf_prog_dce07e362d941d2b_bpf_test_socket_sockopt+0x12b/0x132\n  bpf_prog_348c9b5faaf10092_skops_sockopt+0x954/0xe86\n  __cgroup_bpf_run_filter_sock_ops+0xbc/0x250\n  tcp_connect+0x879/0x1160\n  tcp_v6_connect+0x50c/0x870\n  mptcp_connect+0x129/0x280\n  __inet_stream_connect+0xce/0x370\n  inet_stream_connect+0x36/0x50\n  bpf_trampoline_6442491565+0x49/0xef\n  inet_stream_connect+0x5/0x50\n  __sys_connect+0x63/0x90\n  __x64_sys_connect+0x14/0x20\n\nThe root cause of the issue is that bpf allows accessing mptcp-level\nproto_ops from a tcp subflow scope.\n\nFix the issue detecting the problematic call and preventing any action."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux se ha resuelto la siguiente vulnerabilidad: mptcp: impide que BPF acceda a lowat desde un socket de subflujo. Alexei inform\u00f3 el siguiente s\u00edmbolo: ADVERTENCIA: CPU: 32 PID: 3276 en net/mptcp/subflow.c:1430 subflow_data_ready+0x147/0x1c0 M\u00f3dulos vinculados en: ficticio bpf_testmod(O) [\u00faltima descarga: bpf_test_no_cfi(O)] CPU: 32 PID: 3276 Comunicaciones: test_progs Contaminado: GO 6.8.0-12873-g2c43c33bfd23 Seguimiento de llamadas:  mptcp_set_rcvlowat+0x79/0x1d0 sk_setsockopt+0x6c0/0x1540 __bpf_setsockopt+0x6f/0x90 ock_ops_setsockopt+0x3c/0x90 bpf_prog_509ce5db2c7f9981_bpf_test_sockopt_int+0xb4/0x11b bpf_prog_dce07e362d941d2b_bpf_test_socket_sockopt+0x12b /0x132 bpf_prog_348c9b5faaf10092_skops_sockopt+0x954/0xe86 __cgroup_bpf_run_filter_sock_ops+0xbc/0x250 tcp_connect+0x879/0x1160 tcp_v6_connect+0x50c/0x870 x129/0x280 __inet_stream_connect+0xce/0x370 inet_stream_connect+0x36/0x50 bpf_trampoline_6442491565+0x49/0xef inet_stream_connect+0x5/0x50 __sys_connect+0x63 /0x90 __x64_sys_connect+0x14/0x20 La causa principal del problema es que bpf permite acceder a proto_ops de nivel mptcp desde un alcance de subflujo tcp. Solucione el problema al detectar la llamada problem\u00e1tica y evitar cualquier acci\u00f3n."
          }
        ],
        "id": "CVE-2024-35894",
        "lastModified": "2026-08-04T11:18:07.527",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            },
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "nvd@nist.gov",
              "type": "Primary"
            }
          ],
          "ssvcV203": [
            {
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "ssvcData": {
                "id": "CVE-2024-35894",
                "options": [
                  {
                    "exploitation": "none"
                  },
                  {
                    "automatable": "no"
                  },
                  {
                    "technicalImpact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-05-23T17:19:11.932851Z",
                "version": "2.0.3"
              }
            }
          ]
        },
        "published": "2024-05-19T09:15:10.397",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/3ffb1ab698376f09cc33101c07c1be229389fe29"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/ee3c845787b621cfe82c2e52c513024a9d7a78f5"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/fcf4692fa39e86a590c14a4af2de704e1d20a3b5"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/3ffb1ab698376f09cc33101c07c1be229389fe29"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/fcf4692fa39e86a590c14a4af2de704e1d20a3b5"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "url": "https://security.netapp.com/advisory/ntap-20250321-0002/"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Modified",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "NVD-CWE-noinfo"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-04T22:47:09+00:00",
      "cve": "CVE-2024-35894",
      "id": "CVE-2024-35894",
      "initial_release_date": "2024-05-19T00:00:00+00:00",
      "product_status:fixed": "280",
      "product_status:known_affected": "22",
      "product_status:known_not_affected": "98",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: mptcp: prevent BPF accessing lowat from a subflow socket.",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-35894.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-07-23T02:06:31Z",
      "cve": "CVE-2024-35894",
      "id": "CVE-2024-35894",
      "initial_release_date": "2024-05-21T01:59:26Z",
      "product_status:known_not_affected": "330",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-35894",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-35894.json",
      "version": "18"
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2025-03-21T18:03:47.343Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/3ffb1ab698376f09cc33101c07c1be229389fe29"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/fcf4692fa39e86a590c14a4af2de704e1d20a3b5"
              },
              {
                "url": "https://security.netapp.com/advisory/ntap-20250321-0002/"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2024-35894",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-05-23T17:19:11.932851Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2024-05-23T19:01:25.738Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "Linux",
              "programFiles": [
                "net/mptcp/sockopt.c"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "lessThan": "ee3c845787b621cfe82c2e52c513024a9d7a78f5",
                  "status": "affected",
                  "version": "124a4885b55f3039c697feb53edc5ad88bf21161",
                  "versionType": "git"
                },
                {
                  "lessThan": "3ffb1ab698376f09cc33101c07c1be229389fe29",
                  "status": "affected",
                  "version": "5684ab1a0effbfeb706f47d85785f653005b97b1",
                  "versionType": "git"
                },
                {
                  "lessThan": "fcf4692fa39e86a590c14a4af2de704e1d20a3b5",
                  "status": "affected",
                  "version": "5684ab1a0effbfeb706f47d85785f653005b97b1",
                  "versionType": "git"
                }
              ]
            },
            {
              "defaultStatus": "affected",
              "product": "Linux",
              "programFiles": [
                "net/mptcp/sockopt.c"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "status": "affected",
                  "version": "6.7"
                },
                {
                  "lessThan": "6.7",
                  "status": "unaffected",
                  "version": "0",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "6.8.*",
                  "status": "unaffected",
                  "version": "6.8.5",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "*",
                  "status": "unaffected",
                  "version": "6.9",
                  "versionType": "original_commit_for_fix"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.8.5",
                      "versionStartIncluding": "6.7",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.9",
                      "versionStartIncluding": "6.7",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: prevent BPF accessing lowat from a subflow socket.\n\nAlexei reported the following splat:\n\n WARNING: CPU: 32 PID: 3276 at net/mptcp/subflow.c:1430 subflow_data_ready+0x147/0x1c0\n Modules linked in: dummy bpf_testmod(O) [last unloaded: bpf_test_no_cfi(O)]\n CPU: 32 PID: 3276 Comm: test_progs Tainted: GO       6.8.0-12873-g2c43c33bfd23\n Call Trace:\n  \u003cTASK\u003e\n  mptcp_set_rcvlowat+0x79/0x1d0\n  sk_setsockopt+0x6c0/0x1540\n  __bpf_setsockopt+0x6f/0x90\n  bpf_sock_ops_setsockopt+0x3c/0x90\n  bpf_prog_509ce5db2c7f9981_bpf_test_sockopt_int+0xb4/0x11b\n  bpf_prog_dce07e362d941d2b_bpf_test_socket_sockopt+0x12b/0x132\n  bpf_prog_348c9b5faaf10092_skops_sockopt+0x954/0xe86\n  __cgroup_bpf_run_filter_sock_ops+0xbc/0x250\n  tcp_connect+0x879/0x1160\n  tcp_v6_connect+0x50c/0x870\n  mptcp_connect+0x129/0x280\n  __inet_stream_connect+0xce/0x370\n  inet_stream_connect+0x36/0x50\n  bpf_trampoline_6442491565+0x49/0xef\n  inet_stream_connect+0x5/0x50\n  __sys_connect+0x63/0x90\n  __x64_sys_connect+0x14/0x20\n\nThe root cause of the issue is that bpf allows accessing mptcp-level\nproto_ops from a tcp subflow scope.\n\nFix the issue detecting the problematic call and preventing any action."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "scenarios": [
                {
                  "lang": "en",
                  "value": "AV:L - The vulnerable path is entered from a local syscall \u2014 `connect()`/`listen()` on an `IPPROTO_MPTCP` socket triggers the cgroup sock_ops hook on the grafted subflow before any packet is exchanged. No remote peer data is required to reach `mptcp_set_rcvlowat()` with the wrong sock type.\nAC:L - The type confusion is deterministic \u2014 no race and no memory-layout guessing is needed to reach it; creating an MPTCP socket and connecting reproduces it every time (as the BPF selftest did). Attack-relevant heap state (subflow send queue contents) is itself attacker-controlled.\nPR:L - On a realistic container/Kubernetes host that already has an administrator-installed cgroup sock_ops BPF program adjusting socket options, an ordinary unprivileged user needs no capability at all: `socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP)` requires no privilege and `connect()` drives the confusion.\nUI:N - The attacker triggers the bug entirely through their own syscalls on their own socket. No action by any other user or administrator is needed at exploitation time.\nS:U - The corruption stays within the kernel\u0027s own security authority \u2014 there is no VM, IOMMU, or sandbox boundary crossed. This is a standard in-kernel type confusion.\nC:H - Type confusion between `struct mptcp_sock` and `struct tcp_sock` causes pointers to be synthesized from unrelated socket memory and dereferenced, and the resulting `sk_rcvbuf`/`window_clamp` corruption at attacker-influenced addresses can be groomed into a read primitive. Per kernel scoring guidance, memory corruption leveragable for disclosure is High.\nI:H - `mptcp_for_each_subflow()` iterates a list head read out of type-confused memory and performs `WRITE_ONCE(ssk-\u003esk_rcvbuf, space)` plus `tcp_sk(ssk)-\u003ewindow_clamp = val` through the resulting wild pointer, giving two 32-bit writes with attacker-influenced values at attacker-influenceable addresses \u2014 a control-flow-hijack-capable primitive.\nA:H - The confusion reliably produces a kernel oops: `do_div()` on the aliased `scaling_ratio` byte faults if it reads zero, and `lock_sock_fast()` on the bogus subflow pointer (typically a timestamp-derived non-canonical address) causes a general protection fault, plus the reported `WARN_ON_ONCE` panics under `panic_on_warn`."
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T11:30:46.642Z",
            "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "shortName": "Linux"
          },
          "references": [
            {
              "url": "https://git.kernel.org/stable/c/ee3c845787b621cfe82c2e52c513024a9d7a78f5"
            },
            {
              "url": "https://git.kernel.org/stable/c/3ffb1ab698376f09cc33101c07c1be229389fe29"
            },
            {
              "url": "https://git.kernel.org/stable/c/fcf4692fa39e86a590c14a4af2de704e1d20a3b5"
            }
          ],
          "title": "mptcp: prevent BPF accessing lowat from a subflow socket.",
          "x_generator": {
            "engine": "bippy-1.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "assignerShortName": "Linux",
        "cveId": "CVE-2024-35894",
        "datePublished": "2024-05-19T08:34:49.504Z",
        "dateReserved": "2024-05-17T13:50:33.113Z",
        "dateUpdated": "2026-08-05T11:30:46.642Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…