CVE-2026-64082 (GCVE-0-2026-64082)

Vulnerability from cvelistv5 – Published: 2026-07-19 15:39 – Updated: 2026-09-02 12:49
VLAI
Title
riscv: Fix register corruption from uninitialized cregs on error
Summary
In the Linux kernel, the following vulnerability has been resolved: riscv: Fix register corruption from uninitialized cregs on error compat_riscv_gpr_set() calls cregs_to_regs() unconditionally, even when user_regset_copyin() fails. Since cregs is an uninitialized stack variable, a copyin failure causes uninitialized stack data to be written into the target task's pt_regs, corrupting its register state and potentially leaking kernel stack contents. compat_restore_sigcontext() has the same issue: it calls cregs_to_regs() even when __copy_from_user() fails, leading to the same corruption of the signal-returning task's register state on error. Only call cregs_to_regs() when the user copy succeeds.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 7383ee05314be58f8f9f018ee0ac53bef3808aea , < f2d88b0d7aebfa4643fc58bbae57210c6daff9c6 (git)
Affected: 7383ee05314be58f8f9f018ee0ac53bef3808aea , < 66dedb6028c3df6c6a3372dd935b823917e150d5 (git)
Affected: 7383ee05314be58f8f9f018ee0ac53bef3808aea , < 2a7d1daf2674fe7d5b1cc99a4e3b5f0f72d5958f (git)
Affected: 7383ee05314be58f8f9f018ee0ac53bef3808aea , < 0599aa23734c48de9bce36d043a9ec90c23945a1 (git)
Affected: 7383ee05314be58f8f9f018ee0ac53bef3808aea , < 9e020156833f1ad0d425a1e3d85b65639f1c1c50 (git)
Affected: 7383ee05314be58f8f9f018ee0ac53bef3808aea , < 6ebcbb53fc9bc30843054ed99fd60b8e542628f4 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.19
Unaffected: 0 , < 5.19 (semver)
Unaffected: 6.1.187 , ≤ 6.1.* (semver)
Unaffected: 6.6.156 , ≤ 6.6.* (semver)
Unaffected: 6.12.108 , ≤ 6.12.* (semver)
Unaffected: 6.18.49 , ≤ 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": [
            "arch/riscv/kernel/compat_signal.c",
            "arch/riscv/kernel/ptrace.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f2d88b0d7aebfa4643fc58bbae57210c6daff9c6",
              "status": "affected",
              "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
              "versionType": "git"
            },
            {
              "lessThan": "66dedb6028c3df6c6a3372dd935b823917e150d5",
              "status": "affected",
              "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
              "versionType": "git"
            },
            {
              "lessThan": "2a7d1daf2674fe7d5b1cc99a4e3b5f0f72d5958f",
              "status": "affected",
              "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
              "versionType": "git"
            },
            {
              "lessThan": "0599aa23734c48de9bce36d043a9ec90c23945a1",
              "status": "affected",
              "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
              "versionType": "git"
            },
            {
              "lessThan": "9e020156833f1ad0d425a1e3d85b65639f1c1c50",
              "status": "affected",
              "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
              "versionType": "git"
            },
            {
              "lessThan": "6ebcbb53fc9bc30843054ed99fd60b8e542628f4",
              "status": "affected",
              "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/kernel/compat_signal.c",
            "arch/riscv/kernel/ptrace.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.19"
            },
            {
              "lessThan": "5.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.187",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.156",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.108",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.49",
              "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.1.187",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.156",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.108",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.49",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.11",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nriscv: Fix register corruption from uninitialized cregs on error\n\ncompat_riscv_gpr_set() calls cregs_to_regs() unconditionally, even when\nuser_regset_copyin() fails. Since cregs is an uninitialized stack\nvariable, a copyin failure causes uninitialized stack data to be written\ninto the target task\u0027s pt_regs, corrupting its register state and\npotentially leaking kernel stack contents.\n\ncompat_restore_sigcontext() has the same issue: it calls cregs_to_regs()\neven when __copy_from_user() fails, leading to the same corruption of\nthe signal-returning task\u0027s register state on error.\n\nOnly call cregs_to_regs() when the user copy succeeds."
        }
      ],
      "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 bug is only reachable through local kernel interfaces\u2014compat_rt_sigreturn and ptrace(PTRACE_SETREGSET)\u2014with no network, adjacent-radio, or physical-device code path involved.\nAC:L - An attacker can reliably force the user copy to fail by racing munmap/mprotect against sigreturn or ptrace SETREGSET after access_ok, controlling both sides of the TOCTOU window.\nPR:L - The lowest-privilege path is compat_rt_sigreturn, callable by any unprivileged 32-bit compat process on a CONFIG_COMPAT RISC-V system without capabilities or root.\nUI:N - Exploitation requires no victim interaction; a local attacker corrupts their own task\u2019s registers via rt_sigreturn or a tracee they already control as parent/tracer.\nS:U - Impact is confined to kernel register-state corruption and information disclosure within the same OS security boundary, not a VM escape or cross-authority sandbox breakout.\nC:H - On copy failure, uninitialized kernel stack data (up to the full compat_user_regs_struct) is written into pt_regs, leaking kernel memory contents into user-observable registers.\nI:H - The corruption overwrites all general-purpose registers in pt_regs\u2014including program counter, stack pointer, and return address\u2014constituting memory corruption exploitable for control-flow hijacking.\nA:H - Corrupted pt_regs reliably cause faults, SIGSEGV delivery, or erratic kernel/user execution, and the condition is repeatable for persistent denial of service."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-02T12:49:41.782Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f2d88b0d7aebfa4643fc58bbae57210c6daff9c6"
        },
        {
          "url": "https://git.kernel.org/stable/c/66dedb6028c3df6c6a3372dd935b823917e150d5"
        },
        {
          "url": "https://git.kernel.org/stable/c/2a7d1daf2674fe7d5b1cc99a4e3b5f0f72d5958f"
        },
        {
          "url": "https://git.kernel.org/stable/c/0599aa23734c48de9bce36d043a9ec90c23945a1"
        },
        {
          "url": "https://git.kernel.org/stable/c/9e020156833f1ad0d425a1e3d85b65639f1c1c50"
        },
        {
          "url": "https://git.kernel.org/stable/c/6ebcbb53fc9bc30843054ed99fd60b8e542628f4"
        }
      ],
      "title": "riscv: Fix register corruption from uninitialized cregs on error",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-64082",
    "datePublished": "2026-07-19T15:39:54.074Z",
    "dateReserved": "2026-07-19T07:54:57.031Z",
    "dateUpdated": "2026-09-02T12:49:41.782Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-64082",
      "date": "2026-09-20",
      "epss": "0.00129",
      "percentile": "0.02943"
    },
    "microsoft_vex": {
      "current_release_date": "2026-08-11T14:02:02.000Z",
      "cve": "CVE-2026-64082",
      "id": "msrc_CVE-2026-64082",
      "initial_release_date": "2026-07-21T01:05:16.000Z",
      "product_status:known_affected": "3",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "riscv: Fix register corruption from uninitialized cregs on error",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-64082.json",
      "version": "3"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "arch/riscv/kernel/compat_signal.c",
                  "arch/riscv/kernel/ptrace.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "f2d88b0d7aebfa4643fc58bbae57210c6daff9c6",
                    "status": "affected",
                    "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "66dedb6028c3df6c6a3372dd935b823917e150d5",
                    "status": "affected",
                    "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "2a7d1daf2674fe7d5b1cc99a4e3b5f0f72d5958f",
                    "status": "affected",
                    "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0599aa23734c48de9bce36d043a9ec90c23945a1",
                    "status": "affected",
                    "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "9e020156833f1ad0d425a1e3d85b65639f1c1c50",
                    "status": "affected",
                    "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6ebcbb53fc9bc30843054ed99fd60b8e542628f4",
                    "status": "affected",
                    "version": "7383ee05314be58f8f9f018ee0ac53bef3808aea",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "arch/riscv/kernel/compat_signal.c",
                  "arch/riscv/kernel/ptrace.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.19"
                  },
                  {
                    "lessThan": "5.19",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.187",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.156",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.108",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.49",
                    "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": "7B4BD597-B75A-4159-BE4E-AEAC4025DB77",
                    "versionEndExcluding": "7.0.11",
                    "versionStartIncluding": "5.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
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nriscv: Fix register corruption from uninitialized cregs on error\n\ncompat_riscv_gpr_set() calls cregs_to_regs() unconditionally, even when\nuser_regset_copyin() fails. Since cregs is an uninitialized stack\nvariable, a copyin failure causes uninitialized stack data to be written\ninto the target task\u0027s pt_regs, corrupting its register state and\npotentially leaking kernel stack contents.\n\ncompat_restore_sigcontext() has the same issue: it calls cregs_to_regs()\neven when __copy_from_user() fails, leading to the same corruption of\nthe signal-returning task\u0027s register state on error.\n\nOnly call cregs_to_regs() when the user copy succeeds."
          }
        ],
        "id": "CVE-2026-64082",
        "lastModified": "2026-09-03T20:03:09.430",
        "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"
            }
          ]
        },
        "published": "2026-07-19T16:17:48.807",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/0599aa23734c48de9bce36d043a9ec90c23945a1"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/2a7d1daf2674fe7d5b1cc99a4e3b5f0f72d5958f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/66dedb6028c3df6c6a3372dd935b823917e150d5"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/6ebcbb53fc9bc30843054ed99fd60b8e542628f4"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/9e020156833f1ad0d425a1e3d85b65639f1c1c50"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/f2d88b0d7aebfa4643fc58bbae57210c6daff9c6"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Analyzed",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-908"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-07-21T08:04:53+00:00",
      "cve": "CVE-2026-64082",
      "id": "CVE-2026-64082",
      "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: riscv: Fix register corruption from uninitialized cregs on error",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-64082.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-03T00:07:44Z",
      "cve": "CVE-2026-64082",
      "id": "CVE-2026-64082",
      "initial_release_date": "2026-07-21T13:00:01Z",
      "product_status:known_not_affected": "376",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-64082",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-64082.json",
      "version": "5"
    }
  }
}



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…