CVE-2026-64080 (GCVE-0-2026-64080)

Vulnerability from cvelistv5 – Published: 2026-07-19 15:39 – Updated: 2026-08-05 12:38
VLAI
Title
firmware: arm_ffa: Snapshot notifier callbacks under lock
Summary
In the Linux kernel, the following vulnerability has been resolved: firmware: arm_ffa: Snapshot notifier callbacks under lock Both notification handlers currently look up a notifier callback under notify_lock, drop the lock, and then dereference the returned notifier entry. A concurrent unregister can delete and free that entry in the gap, leaving the handler to dereference stale memory. Copy the callback pointer and callback data while notify_lock is still held and invoke the callback only after the lock is dropped. This keeps the existing callback execution model while removing the use-after-free window in both the framework and non-framework notification paths.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 285a5ea0f542db94c3ed11e01a71abb47d15cbf5 , < d1e38551fadea230649bc428f0f35c9ee062a072 (git)
Affected: 285a5ea0f542db94c3ed11e01a71abb47d15cbf5 , < 0e7be42ef2490f19d859a6146324d48cafdc9d5c (git)
Affected: 285a5ea0f542db94c3ed11e01a71abb47d15cbf5 , < 38290b180a4d5746baed796d49f88d56d2f336cd (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.15
Unaffected: 0 , < 6.15 (semver)
Unaffected: 6.18.34 , ≤ 6.18.* (semver)
Unaffected: 7.0.11 , ≤ 7.0.* (semver)
Unaffected: 7.1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/firmware/arm_ffa/driver.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d1e38551fadea230649bc428f0f35c9ee062a072",
              "status": "affected",
              "version": "285a5ea0f542db94c3ed11e01a71abb47d15cbf5",
              "versionType": "git"
            },
            {
              "lessThan": "0e7be42ef2490f19d859a6146324d48cafdc9d5c",
              "status": "affected",
              "version": "285a5ea0f542db94c3ed11e01a71abb47d15cbf5",
              "versionType": "git"
            },
            {
              "lessThan": "38290b180a4d5746baed796d49f88d56d2f336cd",
              "status": "affected",
              "version": "285a5ea0f542db94c3ed11e01a71abb47d15cbf5",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/firmware/arm_ffa/driver.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.15"
            },
            {
              "lessThan": "6.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.34",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.34",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.11",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfirmware: arm_ffa: Snapshot notifier callbacks under lock\n\nBoth notification handlers currently look up a notifier callback under\nnotify_lock, drop the lock, and then dereference the returned\nnotifier entry. A concurrent unregister can delete and free that\nentry in the gap, leaving the handler to dereference stale memory.\n\nCopy the callback pointer and callback data while notify_lock is\nstill held and invoke the callback only after the lock is dropped.\nThis keeps the existing callback execution model while removing the\nuse-after-free window in both the framework and non-framework\nnotification paths."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.3,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached through the Arm FF-A firmware notification IRQ/workqueue path (SMC/secure-partition notifications), not through any network protocol. Attackers reach it locally via secure-world FF-A traffic or TEE ioctl access on ARM64 TrustZone systems.\nAC:L - This is a race where the attacker can flood FF-A notifications from secure world (or via concurrent TEE sessions) while driver teardown unregisters the callback; both sides of the race are attacker-influenceable on systems with OP-TEE async notifications enabled.\nPR:N - A malicious secure-world partition can send FF-A notifications without any normal-world Linux credentials; the concurrent unregister side is reached automatically during kernel/driver teardown (reboot, shutdown, module unload) without requiring attacker privileges.\nUI:N - Exploitation requires no victim interaction beyond normal system operation; a malicious secure-world component or automated teardown events (scheduled reboot, OTA, shutdown) can trigger the race without the user performing any action.\nS:C - On Arm TrustZone deployments, a malicious secure-world partition can corrupt normal-world kernel memory across the secure/normal-world security boundary, escalating impact beyond the FF-A driver\u0027s own authority into full kernel compromise.\nC:H - The UAF dereferences a freed kmalloc notifier entry containing callback metadata; stale heap contents can be read and leveraged for kernel memory disclosure consistent with UAF guidance.\nI:H - After the UAF, the handler invokes a function pointer read from freed memory (cb_info-\u003ecb/fwk_cb), enabling control-flow hijack and arbitrary kernel code execution via heap grooming.\nA:H - The UAF can cause immediate kernel oops/panic from dereferencing freed memory or invoking a corrupted function pointer, satisfying kernel crash guidance for UAF bugs."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:38:59.719Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d1e38551fadea230649bc428f0f35c9ee062a072"
        },
        {
          "url": "https://git.kernel.org/stable/c/0e7be42ef2490f19d859a6146324d48cafdc9d5c"
        },
        {
          "url": "https://git.kernel.org/stable/c/38290b180a4d5746baed796d49f88d56d2f336cd"
        }
      ],
      "title": "firmware: arm_ffa: Snapshot notifier callbacks under lock",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-64080",
    "datePublished": "2026-07-19T15:39:52.818Z",
    "dateReserved": "2026-07-19T07:54:57.031Z",
    "dateUpdated": "2026-08-05T12:38:59.719Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-64080",
      "date": "2026-09-21",
      "epss": "0.00145",
      "percentile": "0.04176"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/firmware/arm_ffa/driver.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "d1e38551fadea230649bc428f0f35c9ee062a072",
                    "status": "affected",
                    "version": "285a5ea0f542db94c3ed11e01a71abb47d15cbf5",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0e7be42ef2490f19d859a6146324d48cafdc9d5c",
                    "status": "affected",
                    "version": "285a5ea0f542db94c3ed11e01a71abb47d15cbf5",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "38290b180a4d5746baed796d49f88d56d2f336cd",
                    "status": "affected",
                    "version": "285a5ea0f542db94c3ed11e01a71abb47d15cbf5",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/firmware/arm_ffa/driver.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.15"
                  },
                  {
                    "lessThan": "6.15",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.34",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.0.*",
                    "status": "unaffected",
                    "version": "7.0.11",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "89E9B97C-FD82-4D2E-8426-3A1A703B2ED7",
                    "versionEndExcluding": "6.18.34",
                    "versionStartIncluding": "6.15",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "0520D091-FC52-4A50-AF07-70AE7D08B750",
                    "versionEndExcluding": "7.0.11",
                    "versionStartIncluding": "6.19",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*",
                    "matchCriteriaId": "B1EF7059-E670-45F4-B422-54C40FA86390",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*",
                    "matchCriteriaId": "0D38F0BF-A728-4133-A358-D44A2F7EE6D6",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:*",
                    "matchCriteriaId": "EC732D08-5F7B-46D9-B154-E60C7F4F0A97",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc4:*:*:*:*:*:*",
                    "matchCriteriaId": "E5910A9D-F60A-409A-B486-FE66BFEBA9B9",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfirmware: arm_ffa: Snapshot notifier callbacks under lock\n\nBoth notification handlers currently look up a notifier callback under\nnotify_lock, drop the lock, and then dereference the returned\nnotifier entry. A concurrent unregister can delete and free that\nentry in the gap, leaving the handler to dereference stale memory.\n\nCopy the callback pointer and callback data while notify_lock is\nstill held and invoke the callback only after the lock is dropped.\nThis keeps the existing callback execution model while removing the\nuse-after-free window in both the framework and non-framework\nnotification paths."
          }
        ],
        "id": "CVE-2026-64080",
        "lastModified": "2026-09-03T13:08:19.890",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 9.3,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.5,
              "impactScore": 6.0,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-07-19T16:17:48.607",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/0e7be42ef2490f19d859a6146324d48cafdc9d5c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/38290b180a4d5746baed796d49f88d56d2f336cd"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/d1e38551fadea230649bc428f0f35c9ee062a072"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Analyzed",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-416"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-20T17:09:34+00:00",
      "cve": "CVE-2026-64080",
      "id": "CVE-2026-64080",
      "initial_release_date": "2026-07-19T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: firmware: arm_ffa: Snapshot notifier callbacks under lock",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-64080.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-07T23:45:28Z",
      "cve": "CVE-2026-64080",
      "id": "CVE-2026-64080",
      "initial_release_date": "2026-07-21T13:00:04Z",
      "product_status:known_not_affected": "284",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-64080",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-64080.json",
      "version": "4"
    }
  }
}



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…