{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2025-38386",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2025-38386"
  ],
  "published": "2025-07-25T12:55:41Z",
  "summary": "ACPICA: Refuse to evaluate a method if arguments are missing",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nACPICA: Refuse to evaluate a method if arguments are missing\n\nAs reported in [1], a platform firmware update that increased the number\nof method parameters and forgot to update a least one of its callers,\ncaused ACPICA to crash due to use-after-free.\n\nSince this a result of a clear AML issue that arguably cannot be fixed\nup by the interpreter (it cannot produce missing data out of thin air),\naddress it by making ACPICA refuse to evaluate a method if the caller\nattempts to pass fewer arguments than expected to it.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.1.47-1+rpt4"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-2712",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v6",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7l",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v8",
            "binary_version": "1:6.1.47-1+rpt4"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.1.47-1+rpt4": {
            "linux_commit": "655fc658a15ae7a6f37103754adb39ba52a9a14e",
            "upstream_version": "6.1.47",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.144",
            "compiled_filter": false
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2025-38386"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/b49d224d1830c46e20adce2a239c454cdab426f1"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/2219e49857ffd6aea1b1ca5214d3270f84623a16"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/ab1e8491c19eb2ea0fda81ef28e841c7cb6399f5"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/4305d936abde795c2ef6ba916de8f00a50f64d2d"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/d547779e72cea9865b732cd45393c4cd02b3598e"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/18ff4ed6a33a7e3f2097710eacc96bea7696e803"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/c9e4da550ae196132b990bd77ed3d8f2d9747f87"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/6fcab2791543924d438e7fa49276d0998b0a069f"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-05T12:19:11Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 7.8,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The vulnerable code is the ACPICA AML interpreter, reachable only through control-method evaluation on the local machine (sysfs/procfs ACPI attributes, thermal/battery/EC paths, device init, suspend/resume); there is no network or adjacent-network path to AML execution.\nAC:L - On an affected system the defect triggers deterministically whenever the mismatched method invocation is evaluated \u2014 no race to win, no memory-layout condition to guess, and the stale operand slots are populated by the same walk state's normal expression evaluation.\nPR:L - Many ACPI control methods are evaluated in response to reads of world-accessible sysfs attributes (thermal zone temperature, power-supply uevent, backlight), so an unprivileged local user can repeatedly drive the vulnerable nested-method path without any capability.\nUI:N - Triggering requires only the attacker's own read of an ACPI-backed sysfs attribute or normal runtime ACPI activity; no action by another user or administrator is needed.\nS:U - The use-after-free corrupts kernel heap objects in the ACPICA operand cache, staying entirely within the kernel's own security authority with no crossing into a hypervisor, IOMMU, or other security scope.\nC:H - This is a use-after-free: acpi_ut_update_object_reference() reads the type, package count, and element pointers out of freed, potentially reallocated slab memory, and the resulting premature frees leave live AML-visible buffer/string objects dangling, giving a path to disclose arbitrary kernel memory contents.\nI:H - Decrementing reference counts through stale pointers yields refcount underflow, double-free, and an arbitrary-decrement primitive against reclaimed slab memory \u2014 a classic heap-corruption route to control-flow hijack and arbitrary write.\nA:H - The reported real-world symptom was a kernel crash from the use-after-free, and refcount corruption of ACPICA operand objects reliably produces oops/panic, which an unprivileged user can trigger repeatedly."
    }
  }
}
