CVE-2025-21734 (GCVE-0-2025-21734)

Vulnerability from cvelistv5 – Published: 2025-02-27 02:12 – Updated: 2026-08-05 11:54
VLAI
Title
misc: fastrpc: Fix copy buffer page size
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.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4 , < c56ba3ea8e3c9a69a992aad18f7a65e43e51d623 (git)
Affected: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4 , < c0464bad0e85fcd5d47e4297d1e410097c979e55 (git)
Affected: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4 , < 24a79c6bc8de763f7c50f4f84f8b0c183bc25a51 (git)
Affected: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4 , < c3f7161123fcbdc64e90119ccce292d8b66281c4 (git)
Affected: 02b45b47fbe84e23699bb6bdc74d4c2780e282b4 , < e966eae72762ecfdbdb82627e2cda48845b9dd66 (git)
Create a notification for this product.
Linux Linux Affected: 5.2
Unaffected: 0 , < 5.2 (semver)
Unaffected: 6.1.129 , ≤ 6.1.* (semver)
Unaffected: 6.6.78 , ≤ 6.6.* (semver)
Unaffected: 6.12.14 , ≤ 6.12.* (semver)
Unaffected: 6.13.3 , ≤ 6.13.* (semver)
Unaffected: 6.14 , ≤ * (original_commit_for_fix)
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",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-21734",
      "date": "2026-08-05",
      "epss": "0.00203",
      "percentile": "0.1039"
    },
    "microsoft_vex": {
      "current_release_date": "2026-03-31T14:52:38.000Z",
      "cve": "CVE-2025-21734",
      "id": "msrc_CVE-2025-21734",
      "initial_release_date": "2025-02-02T00:00:00.000Z",
      "product_status:known_affected": "3",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "misc: fastrpc: Fix copy buffer page size",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-21734.json",
      "version": "3"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-21734\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-02-27T03:15:14.030\",\"lastModified\":\"2026-07-30T06:21:14.637\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"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.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: misc: fastrpc: Se corrige el tama\u00f1o de p\u00e1gina del b\u00fafer de copia Para un b\u00fafer no registrado, el controlador fastrpc copia el b\u00fafer y lo pasa al subsistema remoto. Hay un problema con la implementaci\u00f3n actual del c\u00e1lculo del tama\u00f1o de p\u00e1gina que no considera el desplazamiento en el c\u00e1lculo. Esto podr\u00eda provocar que se pase un tama\u00f1o de p\u00e1gina incorrecto y fuera de los l\u00edmites, lo que podr\u00eda generar un problema de memoria. Calcule el inicio y el final de la p\u00e1gina utilizando la direcci\u00f3n ajustada por desplazamiento en lugar de la direcci\u00f3n absoluta.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/misc/fastrpc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"02b45b47fbe84e23699bb6bdc74d4c2780e282b4\",\"lessThan\":\"c56ba3ea8e3c9a69a992aad18f7a65e43e51d623\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"02b45b47fbe84e23699bb6bdc74d4c2780e282b4\",\"lessThan\":\"c0464bad0e85fcd5d47e4297d1e410097c979e55\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"02b45b47fbe84e23699bb6bdc74d4c2780e282b4\",\"lessThan\":\"24a79c6bc8de763f7c50f4f84f8b0c183bc25a51\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"02b45b47fbe84e23699bb6bdc74d4c2780e282b4\",\"lessThan\":\"c3f7161123fcbdc64e90119ccce292d8b66281c4\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"02b45b47fbe84e23699bb6bdc74d4c2780e282b4\",\"lessThan\":\"e966eae72762ecfdbdb82627e2cda48845b9dd66\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/misc/fastrpc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.2\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.2\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.129\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.78\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.14\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.13.3\",\"lessThanOrEqual\":\"6.13.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.14\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-787\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.2\",\"versionEndExcluding\":\"6.1.129\",\"matchCriteriaId\":\"1EC177A9-9B21-468B-BF4D-589B3D0F5E74\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.78\",\"matchCriteriaId\":\"0C58261F-EDFB-4A12-8CCD-F12101482030\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.14\",\"matchCriteriaId\":\"033BB7EE-C9A2-45EA-BAC9-87BB9D951BCD\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.13.3\",\"matchCriteriaId\":\"0E92CEE3-1FC3-4AFC-A513-DEDBA7414F00\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/24a79c6bc8de763f7c50f4f84f8b0c183bc25a51\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c0464bad0e85fcd5d47e4297d1e410097c979e55\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c3f7161123fcbdc64e90119ccce292d8b66281c4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c56ba3ea8e3c9a69a992aad18f7a65e43e51d623\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e966eae72762ecfdbdb82627e2cda48845b9dd66\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:39:47+00:00",
      "cve": "CVE-2025-21734",
      "id": "CVE-2025-21734",
      "initial_release_date": "2025-02-27T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: misc: fastrpc: Fix copy buffer page size",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-21734.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…