CVE-2025-21734 (GCVE-0-2025-21734)
Vulnerability from cvelistv5
Published
2025-02-27 02:12
Modified
2026-08-05 11:54
Summary
In the Linux kernel, the following vulnerability has been resolved: misc: fastrpc: Fix copy buffer page size For non-registered buffer, fastrpc driver copies the buffer and pass it to the remote subsystem. There is a problem with current implementation of page size calculation which is not considering the offset in the calculation. This might lead to passing of improper and out-of-bounds page size which could result in memory issue. Calculate page start and page end using the offset adjusted address instead of absolute address.
Impacted products
Vendor Product Version
Linux Linux Version: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4
Version: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4
Version: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4
Version: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4
Version: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T19:36:37.586Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/misc/fastrpc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c56ba3ea8e3c9a69a992aad18f7a65e43e51d623",
              "status": "affected",
              "version": "02b45b47fbe84e23699bb6bdc74d4c2780e282b4",
              "versionType": "git"
            },
            {
              "lessThan": "c0464bad0e85fcd5d47e4297d1e410097c979e55",
              "status": "affected",
              "version": "02b45b47fbe84e23699bb6bdc74d4c2780e282b4",
              "versionType": "git"
            },
            {
              "lessThan": "24a79c6bc8de763f7c50f4f84f8b0c183bc25a51",
              "status": "affected",
              "version": "02b45b47fbe84e23699bb6bdc74d4c2780e282b4",
              "versionType": "git"
            },
            {
              "lessThan": "c3f7161123fcbdc64e90119ccce292d8b66281c4",
              "status": "affected",
              "version": "02b45b47fbe84e23699bb6bdc74d4c2780e282b4",
              "versionType": "git"
            },
            {
              "lessThan": "e966eae72762ecfdbdb82627e2cda48845b9dd66",
              "status": "affected",
              "version": "02b45b47fbe84e23699bb6bdc74d4c2780e282b4",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/misc/fastrpc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.2"
            },
            {
              "lessThan": "5.2",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.129",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.78",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.13.*",
              "status": "unaffected",
              "version": "6.13.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.14",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.129",
                  "versionStartIncluding": "5.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.78",
                  "versionStartIncluding": "5.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.14",
                  "versionStartIncluding": "5.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.13.3",
                  "versionStartIncluding": "5.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14",
                  "versionStartIncluding": "5.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmisc: fastrpc: Fix copy buffer page size\n\nFor non-registered buffer, fastrpc driver copies the buffer and\npass it to the remote subsystem. There is a problem with current\nimplementation of page size calculation which is not considering\nthe offset in the calculation. This might lead to passing of\nimproper and out-of-bounds page size which could result in\nmemory issue. Calculate page start and page end using the offset\nadjusted address instead of absolute address."
        }
      ],
      "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 vulnerable code is reached only through the FASTRPC_IOCTL_INVOKE ioctl on the /dev/fastrpc-* character device, requiring local access to the system. There is no network-facing path into fastrpc_get_args().\nAC:L - The attacker fully and deterministically controls every input that produces the miscalculation \u2014 the overlap offset (via user-supplied overlapping args[i].ptr/length ranges), the in-page alignment of `args` (via nscalars-derived metalen and preceding buffer lengths), and the buffer length \u2014 so the wrong page count can be produced reliably on the first attempt with no race or unpredictable state.\nPR:L - No capability check exists anywhere on the ioctl path; an unprivileged process only needs to open the fastrpc device node, and the driver explicitly registers a non-secure node for untrusted applications to offload to unsigned PDs (`is_session_rejected()`), which is exactly how untrusted Android apps use CDSP.\nUI:N - The attacker performs the entire sequence (open, init, invoke) itself from its own process; no victim action of any kind is needed.\nS:U - The vulnerable component and the impacted memory are both the host Linux kernel, so the exploit stays within a single security authority \u2014 this is standard local kernel memory corruption/privilege escalation rather than a VM or hypervisor boundary escape.\nC:H - An over-computed pages[i].size hands the DSP a physical page descriptor covering kernel memory beyond the coherent copy buffer, and on the unsigned-PD path the attacker controls the DSP-side code that reads that mapping and returns the contents, yielding disclosure of adjacent kernel memory.\nI:H - The same out-of-bounds page grant is read/write from the coprocessor\u0027s side, so attacker-controlled DSP code can write into kernel memory adjacent to the DMA-coherent allocation, giving a corruption primitive usable for privilege escalation.\nA:H - The mismatched page list either lets the DSP corrupt kernel memory outside the buffer or, in the under-sized direction, causes SMMU context faults and DSP subsystem crashes/restarts, and the ioctl can be repeated at will by any process holding the device fd."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:54:03.438Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c56ba3ea8e3c9a69a992aad18f7a65e43e51d623"
        },
        {
          "url": "https://git.kernel.org/stable/c/c0464bad0e85fcd5d47e4297d1e410097c979e55"
        },
        {
          "url": "https://git.kernel.org/stable/c/24a79c6bc8de763f7c50f4f84f8b0c183bc25a51"
        },
        {
          "url": "https://git.kernel.org/stable/c/c3f7161123fcbdc64e90119ccce292d8b66281c4"
        },
        {
          "url": "https://git.kernel.org/stable/c/e966eae72762ecfdbdb82627e2cda48845b9dd66"
        }
      ],
      "title": "misc: fastrpc: Fix copy buffer page size",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-21734",
    "datePublished": "2025-02-27T02:12:11.663Z",
    "dateReserved": "2024-12-29T08:45:45.756Z",
    "dateUpdated": "2026-08-05T11:54:03.438Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…