← Back to CVE Explorer

CVE-2026-99169

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: futex: Fix mm reuse handling for FUT_OFF_MMSHARED A FUT_OFF_MMSHARED futex is a shared futex that refers to an MM. It is possible for a process to wait on a shared futex with a different MM because a FUT_OFF_INODE waiter can be requeued onto a FUT_OFF_MMSHARED futex by another process. This can cause FUT_OFF_MMSHARED waiters on a freed MM to consume wakeups intended for a newly allocated MM at the same address. Fix it by keying FUT_OFF_MMSHARED using a unique 64-bit per-MM ID. Leave private futexes as before to avoid influencing the performance of the hotpath. (Multi-threaded processes typically implicitly use FUT_OFF_MMSHARED by setting clear_child_tid such that it points into anonymous memory, which causes mm_release() in a multi-threaded mm to perform FUTEX_WAKE.)

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-28 11:17:37.403000
Last modified
2026-10-28 11:17:37.403000
View original CVE JSON
{
  "id": "CVE-2026-99169",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-28T11:17:37.403",
  "lastModified": "2026-10-28T11:17:37.403",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfutex: Fix mm reuse handling for FUT_OFF_MMSHARED\n\nA FUT_OFF_MMSHARED futex is a shared futex that refers to an MM.\nIt is possible for a process to wait on a shared futex with a different MM\nbecause a FUT_OFF_INODE waiter can be requeued onto a FUT_OFF_MMSHARED\nfutex by another process.\nThis can cause FUT_OFF_MMSHARED waiters on a freed MM to consume\nwakeups intended for a newly allocated MM at the same address.\n\nFix it by keying FUT_OFF_MMSHARED using a unique 64-bit per-MM ID.\nLeave private futexes as before to avoid influencing the performance of the\nhotpath.\n\n(Multi-threaded processes typically implicitly use FUT_OFF_MMSHARED by\nsetting clear_child_tid such that it points into anonymous memory, which\ncauses mm_release() in a multi-threaded mm to perform FUTEX_WAKE.)"
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "include/linux/futex.h",
            "include/linux/futex_types.h",
            "kernel/futex/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "222993395ed38f3751287f4bd82ef46b3eb3a66d",
              "lessThan": "c17cc2027773e8e4913c5ab0fe3a489b1ed5bf81",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "222993395ed38f3751287f4bd82ef46b3eb3a66d",
              "lessThan": "2855ddc6844f527e375e78afb55ec2a5182f23b3",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "222993395ed38f3751287f4bd82ef46b3eb3a66d",
              "lessThan": "3267512ad1c2cc0c7768c5b014dc2cceb398a801",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "include/linux/futex.h",
            "include/linux/futex_types.h",
            "kernel/futex/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.7",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.7",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.59",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.13",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/2855ddc6844f527e375e78afb55ec2a5182f23b3",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/3267512ad1c2cc0c7768c5b014dc2cceb398a801",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c17cc2027773e8e4913c5ab0fe3a489b1ed5bf81",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}