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

CVE-2025-38233 (GCVE-0-2025-38233)

Vulnerability from cvelistv5 – Published: 2025-07-04 13:37 – Updated: 2026-08-05 12:00
VLAI
Title
powerpc64/ftrace: fix clobbered r15 during livepatching
Summary
In the Linux kernel, the following vulnerability has been resolved: powerpc64/ftrace: fix clobbered r15 during livepatching While r15 is clobbered always with PPC_FTRACE_OUT_OF_LINE, it is not restored in livepatch sequence leading to not so obvious fails like below: BUG: Unable to handle kernel data access on write at 0xc0000000000f9078 Faulting instruction address: 0xc0000000018ff958 Oops: Kernel access of bad area, sig: 11 [#1] ... NIP: c0000000018ff958 LR: c0000000018ff930 CTR: c0000000009c0790 REGS: c00000005f2e7790 TRAP: 0300 Tainted: G K (6.14.0+) MSR: 8000000000009033 <SF,EE,ME,IR,DR,RI,LE> CR: 2822880b XER: 20040000 CFAR: c0000000008addc0 DAR: c0000000000f9078 DSISR: 0a000000 IRQMASK: 1 GPR00: c0000000018f2584 c00000005f2e7a30 c00000000280a900 c000000017ffa488 GPR04: 0000000000000008 0000000000000000 c0000000018f24fc 000000000000000d GPR08: fffffffffffe0000 000000000000000d 0000000000000000 0000000000008000 GPR12: c0000000009c0790 c000000017ffa480 c00000005f2e7c78 c0000000000f9070 GPR16: c00000005f2e7c90 0000000000000000 0000000000000000 0000000000000000 GPR20: 0000000000000000 c00000005f3efa80 c00000005f2e7c60 c00000005f2e7c88 GPR24: c00000005f2e7c60 0000000000000001 c0000000000f9078 0000000000000000 GPR28: 00007fff97960000 c000000017ffa480 0000000000000000 c0000000000f9078 ... Call Trace: check_heap_object+0x34/0x390 (unreliable) __mutex_unlock_slowpath.isra.0+0xe4/0x230 seq_read_iter+0x430/0xa90 proc_reg_read_iter+0xa4/0x200 vfs_read+0x41c/0x510 ksys_read+0xa4/0x190 system_call_exception+0x1d0/0x440 system_call_vectored_common+0x15c/0x2ec Fix it by restoring r15 always.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: eec37961a56aa4f3fe1c33ffd48eec7d1bb0c009 , < a9212bf5ca640232254b31330e86272fe4073bc9 (git)
Affected: eec37961a56aa4f3fe1c33ffd48eec7d1bb0c009 , < cb5b691f8273432297611863ac142e17119279e0 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.13
Unaffected: 0 , < 6.13 (semver)
Unaffected: 6.15.4 , ≤ 6.15.* (semver)
Unaffected: 6.16 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/kernel/trace/ftrace_entry.S"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "a9212bf5ca640232254b31330e86272fe4073bc9",
              "status": "affected",
              "version": "eec37961a56aa4f3fe1c33ffd48eec7d1bb0c009",
              "versionType": "git"
            },
            {
              "lessThan": "cb5b691f8273432297611863ac142e17119279e0",
              "status": "affected",
              "version": "eec37961a56aa4f3fe1c33ffd48eec7d1bb0c009",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/kernel/trace/ftrace_entry.S"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.13"
            },
            {
              "lessThan": "6.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.16",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.4",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc64/ftrace: fix clobbered r15 during livepatching\n\nWhile r15 is clobbered always with PPC_FTRACE_OUT_OF_LINE, it is\nnot restored in livepatch sequence leading to not so obvious fails\nlike below:\n\n  BUG: Unable to handle kernel data access on write at 0xc0000000000f9078\n  Faulting instruction address: 0xc0000000018ff958\n  Oops: Kernel access of bad area, sig: 11 [#1]\n  ...\n  NIP:  c0000000018ff958 LR: c0000000018ff930 CTR: c0000000009c0790\n  REGS: c00000005f2e7790 TRAP: 0300   Tainted: G              K      (6.14.0+)\n  MSR:  8000000000009033 \u003cSF,EE,ME,IR,DR,RI,LE\u003e  CR: 2822880b  XER: 20040000\n  CFAR: c0000000008addc0 DAR: c0000000000f9078 DSISR: 0a000000 IRQMASK: 1\n  GPR00: c0000000018f2584 c00000005f2e7a30 c00000000280a900 c000000017ffa488\n  GPR04: 0000000000000008 0000000000000000 c0000000018f24fc 000000000000000d\n  GPR08: fffffffffffe0000 000000000000000d 0000000000000000 0000000000008000\n  GPR12: c0000000009c0790 c000000017ffa480 c00000005f2e7c78 c0000000000f9070\n  GPR16: c00000005f2e7c90 0000000000000000 0000000000000000 0000000000000000\n  GPR20: 0000000000000000 c00000005f3efa80 c00000005f2e7c60 c00000005f2e7c88\n  GPR24: c00000005f2e7c60 0000000000000001 c0000000000f9078 0000000000000000\n  GPR28: 00007fff97960000 c000000017ffa480 0000000000000000 c0000000000f9078\n  ...\n  Call Trace:\n    check_heap_object+0x34/0x390 (unreliable)\n  __mutex_unlock_slowpath.isra.0+0xe4/0x230\n  seq_read_iter+0x430/0xa90\n  proc_reg_read_iter+0xa4/0x200\n  vfs_read+0x41c/0x510\n  ksys_read+0xa4/0x190\n  system_call_exception+0x1d0/0x440\n  system_call_vectored_common+0x15c/0x2ec\n\nFix it by restoring r15 always."
        }
      ],
      "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 corrupted register is consumed by ordinary kernel code paths entered through local syscalls \u2014 the reported oops comes from a plain read(2) on a procfs file (`ksys_read \u2192 vfs_read \u2192 seq_read_iter`). No network protocol handler is inherently involved; reaching the defect requires executing kernel code on the machine.\nAC:L - With a livepatch active, the missing `REST_GPR(15, r1)` executes on 100% of calls to any patched function \u2014 no race, no memory-layout dependency, no timing window. The enabling configuration (ppc64le with `PPC_FTRACE_OUT_OF_LINE` + `LIVEPATCH`) is the default shipping state on enterprise ppc64le distros that offer live patching.\nPR:L - Triggering needs nothing more than invoking a syscall that reaches a livepatched function; the reproducer is an unprivileged `read()` on /proc. The livepatch itself is loaded by the administrator as routine maintenance, not as an attacker step, so the attacker only needs an ordinary local account.\nUI:N - Once a livepatch is applied \u2014 the normal steady state of a live-patched server \u2014 no victim action of any kind is required; the attacker simply calls into a patched function.\nS:U - The clobbered non-volatile register corrupts the kernel\u0027s own execution state within the same security authority; no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - The caller chain resumes with r15 silently replaced by a kernel `.text` stub address, so any function using r15 as a pointer, index, or length operates on corrupted state \u2014 on read/usercopy paths (`seq_read_iter`, `check_heap_object` in the reported trace) this can steer kernel memory into a user buffer, and the injected value itself is a live kernel text address that defeats KASLR if it reaches userspace.\nI:H - This is genuine kernel memory corruption with write effect \u2014 the reported failure is a faulting *store* to an address derived from the clobbered register, from inside `__mutex_unlock_slowpath` operating on a corrupt mutex pointer. Corrupting a callee-saved register in arbitrary kernel functions yields uncontrolled writes and corrupted locking/data structures that can be leveraged for control-flow-relevant damage.\nA:H - The demonstrated result is an immediate kernel oops (\"Unable to handle kernel data access on write\", sig 11), and because the corruption recurs on every call to a patched function it is trivially repeatable until the system panics or hangs on corrupted lock state."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:00:33.319Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/a9212bf5ca640232254b31330e86272fe4073bc9"
        },
        {
          "url": "https://git.kernel.org/stable/c/cb5b691f8273432297611863ac142e17119279e0"
        }
      ],
      "title": "powerpc64/ftrace: fix clobbered r15 during livepatching",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38233",
    "datePublished": "2025-07-04T13:37:46.293Z",
    "dateReserved": "2025-04-16T04:51:23.996Z",
    "dateUpdated": "2026-08-05T12:00:33.319Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-38233",
      "date": "2026-09-20",
      "epss": "0.00138",
      "percentile": "0.03541"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "arch/powerpc/kernel/trace/ftrace_entry.S"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "a9212bf5ca640232254b31330e86272fe4073bc9",
                    "status": "affected",
                    "version": "eec37961a56aa4f3fe1c33ffd48eec7d1bb0c009",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "cb5b691f8273432297611863ac142e17119279e0",
                    "status": "affected",
                    "version": "eec37961a56aa4f3fe1c33ffd48eec7d1bb0c009",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "arch/powerpc/kernel/trace/ftrace_entry.S"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.13"
                  },
                  {
                    "lessThan": "6.13",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.15.*",
                    "status": "unaffected",
                    "version": "6.15.4",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.16",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "DFD174C5-1AA2-4671-BDDC-1A9FCC753655",
                    "versionEndExcluding": "6.15.4",
                    "versionStartIncluding": "6.13",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc64/ftrace: fix clobbered r15 during livepatching\n\nWhile r15 is clobbered always with PPC_FTRACE_OUT_OF_LINE, it is\nnot restored in livepatch sequence leading to not so obvious fails\nlike below:\n\n  BUG: Unable to handle kernel data access on write at 0xc0000000000f9078\n  Faulting instruction address: 0xc0000000018ff958\n  Oops: Kernel access of bad area, sig: 11 [#1]\n  ...\n  NIP:  c0000000018ff958 LR: c0000000018ff930 CTR: c0000000009c0790\n  REGS: c00000005f2e7790 TRAP: 0300   Tainted: G              K      (6.14.0+)\n  MSR:  8000000000009033 \u003cSF,EE,ME,IR,DR,RI,LE\u003e  CR: 2822880b  XER: 20040000\n  CFAR: c0000000008addc0 DAR: c0000000000f9078 DSISR: 0a000000 IRQMASK: 1\n  GPR00: c0000000018f2584 c00000005f2e7a30 c00000000280a900 c000000017ffa488\n  GPR04: 0000000000000008 0000000000000000 c0000000018f24fc 000000000000000d\n  GPR08: fffffffffffe0000 000000000000000d 0000000000000000 0000000000008000\n  GPR12: c0000000009c0790 c000000017ffa480 c00000005f2e7c78 c0000000000f9070\n  GPR16: c00000005f2e7c90 0000000000000000 0000000000000000 0000000000000000\n  GPR20: 0000000000000000 c00000005f3efa80 c00000005f2e7c60 c00000005f2e7c88\n  GPR24: c00000005f2e7c60 0000000000000001 c0000000000f9078 0000000000000000\n  GPR28: 00007fff97960000 c000000017ffa480 0000000000000000 c0000000000f9078\n  ...\n  Call Trace:\n    check_heap_object+0x34/0x390 (unreliable)\n  __mutex_unlock_slowpath.isra.0+0xe4/0x230\n  seq_read_iter+0x430/0xa90\n  proc_reg_read_iter+0xa4/0x200\n  vfs_read+0x41c/0x510\n  ksys_read+0xa4/0x190\n  system_call_exception+0x1d0/0x440\n  system_call_vectored_common+0x15c/0x2ec\n\nFix it by restoring r15 always."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: powerpc64/ftrace: arregla el r15 da\u00f1ado durante el parche en vivo Si bien r15 siempre se da\u00f1a con PPC_FTRACE_OUT_OF_LINE, no se restaura en la secuencia de parche en vivo, lo que lleva a fallas no tan obvias como las siguientes: ERROR: No se puede manejar el acceso a los datos del kernel en escritura en 0xc0000000000f9078 Direcci\u00f3n de instrucci\u00f3n err\u00f3nea: 0xc0000000018ff958 Oops: Acceso al kernel de \u00e1rea defectuosa, sig: 11 [#1] ... NIP: c0000000018ff958 LR: c0000000018ff930 CTR: c0000000009c0790 REGS: c00000005f2e7790 TRAP: 0300 Tainted: GK (6.14.0+) MSR: 8000000000009033  CR: 2822880b XER: 20040000 CFAR: c0000000008addc0 DAR: c0000000000f9078 DSISR: 0a000000 IRQMASK: 1 GPR00: c0000000018f2584 c00000005f2e7a30 c00000000280a900 c000000017ffa488 GPR04: 00000000000000008 00000000000000000 c0000000018f24fc 000000000000000d GPR08: fffffffffffe0000 000000000000000d 0000000000000000 00000000000008000 GPR12: c0000000009c0790 c000000017ffa480 c00000005f2e7c78 c000000000f9070 GPR16: c00000005f2e7c90 000000000000000 000000000000000 000000000000000 GPR20: 000000000000000 c00000005f3efa80 c00000005f2e7c60 c00000005f2e7c88 GPR24: c00000005f2e7c60 0000000000000001 c00000000000f9078 0000000000000000 GPR28: 00007fff97960000 c000000017ffa480 0000000000000000 c0000000000f9078 ... Rastreo de llamadas: check_heap_object+0x34/0x390 (no confiable) __mutex_unlock_slowpath.isra.0+0xe4/0x230 seq_read_iter+0x430/0xa90 proc_reg_read_iter+0xa4/0x200 vfs_read+0x41c/0x510 ksys_read+0xa4/0x190 system_call_exception+0x1d0/0x440 system_call_vectored_common+0x15c/0x2ec Arr\u00e9glelo restaurando r15 siempre."
          }
        ],
        "id": "CVE-2025-38233",
        "lastModified": "2026-07-30T06:23:02.743",
        "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"
            }
          ]
        },
        "published": "2025-07-04T14:15:32.953",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/a9212bf5ca640232254b31330e86272fe4073bc9"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/cb5b691f8273432297611863ac142e17119279e0"
          }
        ],
        "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": "None",
      "current_release_date": "2026-06-30T10:21:31+00:00",
      "cve": "CVE-2025-38233",
      "id": "CVE-2025-38233",
      "initial_release_date": "2025-07-04T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: powerpc64/ftrace: fix clobbered r15 during livepatching",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-38233.json",
      "version": "3"
    }
  }
}



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…