CVE-2022-50631 (GCVE-0-2022-50631)

Vulnerability from cvelistv5 – Published: 2025-12-08 23:59 – Updated: 2025-12-08 23:59
VLAI?
Title
RISC-V: kexec: Fix memory leak of fdt buffer
Summary
In the Linux kernel, the following vulnerability has been resolved: RISC-V: kexec: Fix memory leak of fdt buffer This is reported by kmemleak detector: unreferenced object 0xff60000082864000 (size 9588): comm "kexec", pid 146, jiffies 4294900634 (age 64.788s) hex dump (first 32 bytes): d0 0d fe ed 00 00 12 ed 00 00 00 48 00 00 11 40 ...........H...@ 00 00 00 28 00 00 00 11 00 00 00 02 00 00 00 00 ...(............ backtrace: [<00000000f95b17c4>] kmemleak_alloc+0x34/0x3e [<00000000b9ec8e3e>] kmalloc_order+0x9c/0xc4 [<00000000a95cf02e>] kmalloc_order_trace+0x34/0xb6 [<00000000f01e68b4>] __kmalloc+0x5c2/0x62a [<000000002bd497b2>] kvmalloc_node+0x66/0xd6 [<00000000906542fa>] of_kexec_alloc_and_setup_fdt+0xa6/0x6ea [<00000000e1166bde>] elf_kexec_load+0x206/0x4ec [<0000000036548e09>] kexec_image_load_default+0x40/0x4c [<0000000079fbe1b4>] sys_kexec_file_load+0x1c4/0x322 [<0000000040c62c03>] ret_from_syscall+0x0/0x2 In elf_kexec_load(), a buffer is allocated via kvmalloc() to store fdt. While it's not freed back to system when kexec kernel is reloaded or unloaded. Then memory leak is caused. Fix it by introducing riscv specific function arch_kimage_file_post_load_cleanup(), and freeing the buffer there.
Severity ?
No CVSS data available.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 6261586e0c91db14c34f894f4bc48f2300cff1d4 , < c66ad198b6497dee8f45d7ed5c03629c4525c7d0 (git)
Affected: 6261586e0c91db14c34f894f4bc48f2300cff1d4 , < dc387c34d8dd10b02a333df098f8fd9bba177a45 (git)
Affected: 6261586e0c91db14c34f894f4bc48f2300cff1d4 , < 96df59b1ae23f5c11698c3c2159aeb2ecd4944a4 (git)
Create a notification for this product.
    Linux Linux Affected: 5.19
Unaffected: 0 , < 5.19 (semver)
Unaffected: 6.0.18 , ≤ 6.0.* (semver)
Unaffected: 6.1.4 , ≤ 6.1.* (semver)
Unaffected: 6.2 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/include/asm/kexec.h",
            "arch/riscv/kernel/elf_kexec.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c66ad198b6497dee8f45d7ed5c03629c4525c7d0",
              "status": "affected",
              "version": "6261586e0c91db14c34f894f4bc48f2300cff1d4",
              "versionType": "git"
            },
            {
              "lessThan": "dc387c34d8dd10b02a333df098f8fd9bba177a45",
              "status": "affected",
              "version": "6261586e0c91db14c34f894f4bc48f2300cff1d4",
              "versionType": "git"
            },
            {
              "lessThan": "96df59b1ae23f5c11698c3c2159aeb2ecd4944a4",
              "status": "affected",
              "version": "6261586e0c91db14c34f894f4bc48f2300cff1d4",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/include/asm/kexec.h",
            "arch/riscv/kernel/elf_kexec.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.0.*",
              "status": "unaffected",
              "version": "6.0.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0.18",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.4",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRISC-V: kexec: Fix memory leak of fdt buffer\n\nThis is reported by kmemleak detector:\n\nunreferenced object 0xff60000082864000 (size 9588):\n  comm \"kexec\", pid 146, jiffies 4294900634 (age 64.788s)\n  hex dump (first 32 bytes):\n    d0 0d fe ed 00 00 12 ed 00 00 00 48 00 00 11 40  ...........H...@\n    00 00 00 28 00 00 00 11 00 00 00 02 00 00 00 00  ...(............\n  backtrace:\n    [\u003c00000000f95b17c4\u003e] kmemleak_alloc+0x34/0x3e\n    [\u003c00000000b9ec8e3e\u003e] kmalloc_order+0x9c/0xc4\n    [\u003c00000000a95cf02e\u003e] kmalloc_order_trace+0x34/0xb6\n    [\u003c00000000f01e68b4\u003e] __kmalloc+0x5c2/0x62a\n    [\u003c000000002bd497b2\u003e] kvmalloc_node+0x66/0xd6\n    [\u003c00000000906542fa\u003e] of_kexec_alloc_and_setup_fdt+0xa6/0x6ea\n    [\u003c00000000e1166bde\u003e] elf_kexec_load+0x206/0x4ec\n    [\u003c0000000036548e09\u003e] kexec_image_load_default+0x40/0x4c\n    [\u003c0000000079fbe1b4\u003e] sys_kexec_file_load+0x1c4/0x322\n    [\u003c0000000040c62c03\u003e] ret_from_syscall+0x0/0x2\n\nIn elf_kexec_load(), a buffer is allocated via kvmalloc() to store fdt.\nWhile it\u0027s not freed back to system when kexec kernel is reloaded or\nunloaded.  Then memory leak is caused.  Fix it by introducing riscv\nspecific function arch_kimage_file_post_load_cleanup(), and freeing the\nbuffer there."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-12-08T23:59:57.228Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c66ad198b6497dee8f45d7ed5c03629c4525c7d0"
        },
        {
          "url": "https://git.kernel.org/stable/c/dc387c34d8dd10b02a333df098f8fd9bba177a45"
        },
        {
          "url": "https://git.kernel.org/stable/c/96df59b1ae23f5c11698c3c2159aeb2ecd4944a4"
        }
      ],
      "title": "RISC-V: kexec: Fix memory leak of fdt buffer",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50631",
    "datePublished": "2025-12-08T23:59:57.228Z",
    "dateReserved": "2025-12-08T23:57:43.369Z",
    "dateUpdated": "2025-12-08T23:59:57.228Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-50631\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-09T01:16:44.490\",\"lastModified\":\"2025-12-09T18:37:13.640\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nRISC-V: kexec: Fix memory leak of fdt buffer\\n\\nThis is reported by kmemleak detector:\\n\\nunreferenced object 0xff60000082864000 (size 9588):\\n  comm \\\"kexec\\\", pid 146, jiffies 4294900634 (age 64.788s)\\n  hex dump (first 32 bytes):\\n    d0 0d fe ed 00 00 12 ed 00 00 00 48 00 00 11 40  ...........H...@\\n    00 00 00 28 00 00 00 11 00 00 00 02 00 00 00 00  ...(............\\n  backtrace:\\n    [\u003c00000000f95b17c4\u003e] kmemleak_alloc+0x34/0x3e\\n    [\u003c00000000b9ec8e3e\u003e] kmalloc_order+0x9c/0xc4\\n    [\u003c00000000a95cf02e\u003e] kmalloc_order_trace+0x34/0xb6\\n    [\u003c00000000f01e68b4\u003e] __kmalloc+0x5c2/0x62a\\n    [\u003c000000002bd497b2\u003e] kvmalloc_node+0x66/0xd6\\n    [\u003c00000000906542fa\u003e] of_kexec_alloc_and_setup_fdt+0xa6/0x6ea\\n    [\u003c00000000e1166bde\u003e] elf_kexec_load+0x206/0x4ec\\n    [\u003c0000000036548e09\u003e] kexec_image_load_default+0x40/0x4c\\n    [\u003c0000000079fbe1b4\u003e] sys_kexec_file_load+0x1c4/0x322\\n    [\u003c0000000040c62c03\u003e] ret_from_syscall+0x0/0x2\\n\\nIn elf_kexec_load(), a buffer is allocated via kvmalloc() to store fdt.\\nWhile it\u0027s not freed back to system when kexec kernel is reloaded or\\nunloaded.  Then memory leak is caused.  Fix it by introducing riscv\\nspecific function arch_kimage_file_post_load_cleanup(), and freeing the\\nbuffer there.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/96df59b1ae23f5c11698c3c2159aeb2ecd4944a4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c66ad198b6497dee8f45d7ed5c03629c4525c7d0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/dc387c34d8dd10b02a333df098f8fd9bba177a45\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


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 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…