CVE-2024-44974 (GCVE-0-2024-44974)
Vulnerability from cvelistv5
Published
2024-09-04 19:54
Modified
2026-08-05 11:37
Summary
In the Linux kernel, the following vulnerability has been resolved: mptcp: pm: avoid possible UaF when selecting endp select_local_address() and select_signal_address() both select an endpoint entry from the list inside an RCU protected section, but return a reference to it, to be read later on. If the entry is dereferenced after the RCU unlock, reading info could cause a Use-after-Free. A simple solution is to copy the required info while inside the RCU protected section to avoid any risk of UaF later. The address ID might need to be modified later to handle the ID0 case later, so a copy seems OK to deal with.
Impacted products
Vendor Product Version
Linux Linux Version: 01cacb00b35cb62b139f07d5f84bcf0eeda8eff6
Version: 01cacb00b35cb62b139f07d5f84bcf0eeda8eff6
Version: 01cacb00b35cb62b139f07d5f84bcf0eeda8eff6
Version: 01cacb00b35cb62b139f07d5f84bcf0eeda8eff6
Version: 01cacb00b35cb62b139f07d5f84bcf0eeda8eff6
Version: 01cacb00b35cb62b139f07d5f84bcf0eeda8eff6
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-44974",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:26:21.490934Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-12T17:33:14.917Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T22:14:27.070Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"
          },
          {
            "url": "https://lists.debian.org/debian-lts-announce/2024/10/msg00003.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/mptcp/pm_netlink.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ddee5b4b6a1cc03c1e9921cf34382e094c2009f1",
              "status": "affected",
              "version": "01cacb00b35cb62b139f07d5f84bcf0eeda8eff6",
              "versionType": "git"
            },
            {
              "lessThan": "f2c865e9e3ca44fc06b5f73b29a954775e4dbb38",
              "status": "affected",
              "version": "01cacb00b35cb62b139f07d5f84bcf0eeda8eff6",
              "versionType": "git"
            },
            {
              "lessThan": "2b4f46f9503633dade75cb796dd1949d0e6581a1",
              "status": "affected",
              "version": "01cacb00b35cb62b139f07d5f84bcf0eeda8eff6",
              "versionType": "git"
            },
            {
              "lessThan": "9a9afbbc3fbfca4975eea4aa5b18556db5a0c0b8",
              "status": "affected",
              "version": "01cacb00b35cb62b139f07d5f84bcf0eeda8eff6",
              "versionType": "git"
            },
            {
              "lessThan": "0201d65d9806d287a00e0ba96f0321835631f63f",
              "status": "affected",
              "version": "01cacb00b35cb62b139f07d5f84bcf0eeda8eff6",
              "versionType": "git"
            },
            {
              "lessThan": "48e50dcbcbaaf713d82bf2da5c16aeced94ad07d",
              "status": "affected",
              "version": "01cacb00b35cb62b139f07d5f84bcf0eeda8eff6",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/mptcp/pm_netlink.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.7"
            },
            {
              "lessThan": "5.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.226",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.167",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.109",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.48",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.10.*",
              "status": "unaffected",
              "version": "6.10.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.11",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.226",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.167",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.109",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.48",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.10.7",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.11",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: pm: avoid possible UaF when selecting endp\n\nselect_local_address() and select_signal_address() both select an\nendpoint entry from the list inside an RCU protected section, but return\na reference to it, to be read later on. If the entry is dereferenced\nafter the RCU unlock, reading info could cause a Use-after-Free.\n\nA simple solution is to copy the required info while inside the RCU\nprotected section to avoid any risk of UaF later. The address ID might\nneed to be modified later to handle the ID0 case later, so a copy seems\nOK to deal with."
        }
      ],
      "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 freeing half of the race requires issuing MPTCP path-manager generic-netlink commands (MPTCP_PM_CMD_DEL_ADDR / FLUSH_ADDRS), which is a local operation; although the reading half is driven by remote MPTCP handshake events, exploitation requires local netlink access.\nAC:L - The attacker controls both sides of the race and the window is very wide \u2014 the stale pointer is used after msk-\u003epm.lock is dropped and across sleeping kernel_bind()/kernel_connect() and socket allocation in mptcp worker context \u2014 so the RCU grace period reliably elapses before the dereference.\nPR:L - The MPTCP PM netlink ops are GENL_UNS_ADMIN_PERM, so CAP_NET_ADMIN in a user-namespace-owned netns obtained via `unshare -Urn` suffices; MPTCP is enabled by default per-netns and creating IPPROTO_MPTCP sockets needs no privilege.\nUI:N - The attacker triggers connection establishment and endpoint deletion entirely on their own; no victim action is needed.\nS:U - The use-after-free is confined to kernel heap objects within the same security authority; no VM, sandbox, or IOMMU boundary is crossed.\nC:H - Freed heap contents are read as a mptcp_addr_info and both copied into the ADD_ADDR option transmitted to the remote peer and used as the bind address of a new subflow, leaking freed kernel memory repeatably; a reclaimed object additionally gives a general UAF read primitive.\nI:H - This is a use-after-free \u2014 the freed slab object can be reclaimed with attacker-sprayed data that then drives socket family selection, bind/connect addressing, and id_avail_bitmap clearing, giving heap-manipulation leverage toward control-flow hijacking.\nA:H - Dereferencing the freed mptcp_pm_addr_entry causes use-after-free oopses/panics (KASAN-reported), and the race can be re-triggered at will to crash the machine."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:37:24.489Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ddee5b4b6a1cc03c1e9921cf34382e094c2009f1"
        },
        {
          "url": "https://git.kernel.org/stable/c/f2c865e9e3ca44fc06b5f73b29a954775e4dbb38"
        },
        {
          "url": "https://git.kernel.org/stable/c/2b4f46f9503633dade75cb796dd1949d0e6581a1"
        },
        {
          "url": "https://git.kernel.org/stable/c/9a9afbbc3fbfca4975eea4aa5b18556db5a0c0b8"
        },
        {
          "url": "https://git.kernel.org/stable/c/0201d65d9806d287a00e0ba96f0321835631f63f"
        },
        {
          "url": "https://git.kernel.org/stable/c/48e50dcbcbaaf713d82bf2da5c16aeced94ad07d"
        }
      ],
      "title": "mptcp: pm: avoid possible UaF when selecting endp",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-44974",
    "datePublished": "2024-09-04T19:54:26.917Z",
    "dateReserved": "2024-08-21T05:34:56.669Z",
    "dateUpdated": "2026-08-05T11:37:24.489Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html\"}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/10/msg00003.html\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2025-11-03T22:14:27.070Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-44974\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:26:21.490934Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:18.933Z\"}}], \"cna\": {\"title\": \"mptcp: pm: avoid possible UaF when selecting endp\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.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\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The freeing half of the race requires issuing MPTCP path-manager generic-netlink commands (MPTCP_PM_CMD_DEL_ADDR / FLUSH_ADDRS), which is a local operation; although the reading half is driven by remote MPTCP handshake events, exploitation requires local netlink access.\\nAC:L - The attacker controls both sides of the race and the window is very wide \\u2014 the stale pointer is used after msk-\u003epm.lock is dropped and across sleeping kernel_bind()/kernel_connect() and socket allocation in mptcp worker context \\u2014 so the RCU grace period reliably elapses before the dereference.\\nPR:L - The MPTCP PM netlink ops are GENL_UNS_ADMIN_PERM, so CAP_NET_ADMIN in a user-namespace-owned netns obtained via `unshare -Urn` suffices; MPTCP is enabled by default per-netns and creating IPPROTO_MPTCP sockets needs no privilege.\\nUI:N - The attacker triggers connection establishment and endpoint deletion entirely on their own; no victim action is needed.\\nS:U - The use-after-free is confined to kernel heap objects within the same security authority; no VM, sandbox, or IOMMU boundary is crossed.\\nC:H - Freed heap contents are read as a mptcp_addr_info and both copied into the ADD_ADDR option transmitted to the remote peer and used as the bind address of a new subflow, leaking freed kernel memory repeatably; a reclaimed object additionally gives a general UAF read primitive.\\nI:H - This is a use-after-free \\u2014 the freed slab object can be reclaimed with attacker-sprayed data that then drives socket family selection, bind/connect addressing, and id_avail_bitmap clearing, giving heap-manipulation leverage toward control-flow hijacking.\\nA:H - Dereferencing the freed mptcp_pm_addr_entry causes use-after-free oopses/panics (KASAN-reported), and the race can be re-triggered at will to crash the machine.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"01cacb00b35cb62b139f07d5f84bcf0eeda8eff6\", \"lessThan\": \"ddee5b4b6a1cc03c1e9921cf34382e094c2009f1\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"01cacb00b35cb62b139f07d5f84bcf0eeda8eff6\", \"lessThan\": \"f2c865e9e3ca44fc06b5f73b29a954775e4dbb38\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"01cacb00b35cb62b139f07d5f84bcf0eeda8eff6\", \"lessThan\": \"2b4f46f9503633dade75cb796dd1949d0e6581a1\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"01cacb00b35cb62b139f07d5f84bcf0eeda8eff6\", \"lessThan\": \"9a9afbbc3fbfca4975eea4aa5b18556db5a0c0b8\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"01cacb00b35cb62b139f07d5f84bcf0eeda8eff6\", \"lessThan\": \"0201d65d9806d287a00e0ba96f0321835631f63f\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"01cacb00b35cb62b139f07d5f84bcf0eeda8eff6\", \"lessThan\": \"48e50dcbcbaaf713d82bf2da5c16aeced94ad07d\", \"versionType\": \"git\"}], \"programFiles\": [\"net/mptcp/pm_netlink.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.7\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.7\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.10.226\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.167\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.109\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.48\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.10.7\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.10.*\"}, {\"status\": \"unaffected\", \"version\": \"6.11\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"net/mptcp/pm_netlink.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/ddee5b4b6a1cc03c1e9921cf34382e094c2009f1\"}, {\"url\": \"https://git.kernel.org/stable/c/f2c865e9e3ca44fc06b5f73b29a954775e4dbb38\"}, {\"url\": \"https://git.kernel.org/stable/c/2b4f46f9503633dade75cb796dd1949d0e6581a1\"}, {\"url\": \"https://git.kernel.org/stable/c/9a9afbbc3fbfca4975eea4aa5b18556db5a0c0b8\"}, {\"url\": \"https://git.kernel.org/stable/c/0201d65d9806d287a00e0ba96f0321835631f63f\"}, {\"url\": \"https://git.kernel.org/stable/c/48e50dcbcbaaf713d82bf2da5c16aeced94ad07d\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmptcp: pm: avoid possible UaF when selecting endp\\n\\nselect_local_address() and select_signal_address() both select an\\nendpoint entry from the list inside an RCU protected section, but return\\na reference to it, to be read later on. If the entry is dereferenced\\nafter the RCU unlock, reading info could cause a Use-after-Free.\\n\\nA simple solution is to copy the required info while inside the RCU\\nprotected section to avoid any risk of UaF later. The address ID might\\nneed to be modified later to handle the ID0 case later, so a copy seems\\nOK to deal with.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.226\", \"versionStartIncluding\": \"5.7\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.167\", \"versionStartIncluding\": \"5.7\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.109\", \"versionStartIncluding\": \"5.7\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.48\", \"versionStartIncluding\": \"5.7\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.10.7\", \"versionStartIncluding\": \"5.7\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.11\", \"versionStartIncluding\": \"5.7\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:37:24.489Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-44974\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:37:24.489Z\", \"dateReserved\": \"2024-08-21T05:34:56.669Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-09-04T19:54:26.917Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…