Skip to content
Heist/ feed
Back to feed
HighFix available

perf: Fix sample vs do_exit()

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: perf: Fix sample vs do_exit() Baisheng Gao reported an ARM64 crash, which Mark decoded as being a synchronous external abort -- most likely due to trying to access MMIO in bad ways. The crash further shows perf trying to do a user stack sample while in exit_mmap()'s tlb_finish_mmu() -- i.e. while tearing down the address space it is trying to access. It turns out that we stop perf after we tear down the userspace mm; a receipie for disaster, since perf likes to access userspace for various reasons. Flip this order by moving up where we stop perf in do_exit(). Additionally, harden PERF_SAMPLE_CALLCHAIN and PERF_SAMPLE_STACK_USER to abort when the current task does not have an mm (exit_mm() makes sure to set current->mm = NULL; before commencing with the actual teardown). Such that CPU wide events don't trip on this same problem.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.239, 5.15.186, 5.4.295, 6.1.142, 6.12.35, 6.15.4, 6.6.95
CVEs
CVE-2025-38424
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 07:57 UTC · Revision 1

Source evidence

perf: Fix sample vs do_exit()

core-osv · Original source

Published 25 Jul 2025, 14:16 UTC

In the Linux kernel, the following vulnerability has been resolved: perf: Fix sample vs do_exit() Baisheng Gao reported an ARM64 crash, which Mark decoded as being a synchronous external abort -- most likely due to trying to access MMIO in bad ways. The crash further shows perf trying to do a user stack sample while in exit_mmap()'s tlb_finish_mmu() -- i.e. while tearing down the address space it is trying to access. It turns out that we stop perf after we tear down the userspace mm; a receipie for disaster, since perf likes to access userspace for various reasons. Flip this order by moving up where we stop perf in do_exit(). Additionally, harden PERF_SAMPLE_CALLCHAIN and PERF_SAMPLE_STACK_USER to abort when the current task does not have an mm (exit_mm() makes sure to set current->mm = NULL; before commencing with the actual teardown). Such that CPU wide events don't trip on this same problem.

osv:CVE-2025-38424

Kernel

Fixed versions: 5.4.295, 5.10.239, 5.15.186, 6.1.142, 6.6.95, 6.12.35, 6.15.4

Complete source record
{
  "id": "5baa0821dcefb9ccaa0982cf76c94aa9563bbda3b081f63c3aea569f8b3156ed",
  "url": "https://osv.dev/vulnerability/CVE-2025-38424",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "perf: Fix sample vs do_exit()",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: perf: Fix sample vs do_exit() Baisheng Gao reported an ARM64 crash, which Mark decoded as being a synchronous external abort -- most likely due to trying to access MMIO in bad ways. The crash further shows perf trying to do a user stack sample while in exit_mmap()'s tlb_finish_mmu() -- i.e. while tearing down the address space it is trying to access. It turns out that we stop perf after we tear down the userspace mm; a receipie for disaster, since perf likes to access userspace for various reasons. Flip this order by moving up where we stop perf in do_exit(). Additionally, harden PERF_SAMPLE_CALLCHAIN and PERF_SAMPLE_STACK_USER to abort when the current task does not have an mm (exit_mm() makes sure to set current->mm = NULL; before commencing with the actual teardown). Such that CPU wide events don't trip on this same problem.",
    "evidence": "osv:CVE-2025-38424",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.4.295",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.10.239",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.186",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.142",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.95",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.35",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.15.4",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2025-38424",
      "aliases": [
        "CVE-2025-38424"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "c5ebcedb566ef17bda7b02686e0d658a7bb42ee7"
                },
                {
                  "fixed": "7b8f3c72175c6a63a95cf2e219f8b78e2baad34e"
                },
                {
                  "fixed": "507c9a595bad3abd107c6a8857d7fd125d89f386"
                },
                {
                  "fixed": "a9f6aab7910a0ef2895797f15c947f6d1053160f"
                },
                {
                  "fixed": "975ffddfa2e19823c719459d2364fcaa17673964"
                },
                {
                  "fixed": "2ee6044a693735396bb47eeaba1ac3ae26c1c99b"
                },
                {
                  "fixed": "456019adaa2f5366b89c868dea9b483179bece54"
                },
                {
                  "fixed": "7311970d07c4606362081250da95f2c7901fc0db"
                },
                {
                  "fixed": "4f6fc782128355931527cefe3eb45338abd8ab39"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38424.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "3.7.0"
                },
                {
                  "fixed": "5.4.295"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.5.0"
                },
                {
                  "fixed": "5.10.239"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.186"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.142"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.95"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.35"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.15.4"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38424.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:50.378732289Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/2ee6044a693735396bb47eeaba1ac3ae26c1c99b",
        "https://git.kernel.org/stable/c/456019adaa2f5366b89c868dea9b483179bece54",
        "https://git.kernel.org/stable/c/4f6fc782128355931527cefe3eb45338abd8ab39",
        "https://git.kernel.org/stable/c/507c9a595bad3abd107c6a8857d7fd125d89f386",
        "https://git.kernel.org/stable/c/7311970d07c4606362081250da95f2c7901fc0db",
        "https://git.kernel.org/stable/c/7b8f3c72175c6a63a95cf2e219f8b78e2baad34e",
        "https://git.kernel.org/stable/c/975ffddfa2e19823c719459d2364fcaa17673964",
        "https://git.kernel.org/stable/c/a9f6aab7910a0ef2895797f15c947f6d1053160f",
        "https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html",
        "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38424.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-38424",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38424.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-38424",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 518691,
  "published_at": "2025-07-25T14:16:44.846+00:00"
}