« Volver al listado

CVE-2022-50631

Estado: AplazadaSin puntuar—

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:

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.

Detalles técnicos trazas, registros y código del informe original
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

CVSS

NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2022-50631",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6261586e0c91db14c34f894f4bc48f2300cff1d4",
              "lessThan": "c66ad198b6497dee8f45d7ed5c03629c4525c7d0",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "6261586e0c91db14c34f894f4bc48f2300cff1d4",
              "lessThan": "dc387c34d8dd10b02a333df098f8fd9bba177a45",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "6261586e0c91db14c34f894f4bc48f2300cff1d4",
              "lessThan": "96df59b1ae23f5c11698c3c2159aeb2ecd4944a4",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "arch/riscv/include/asm/kexec.h",
            "arch/riscv/kernel/elf_kexec.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.19"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "5.19",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.0.18",
              "versionType": "semver",
              "lessThanOrEqual": "6.0.*"
            },
            {
              "status": "unaffected",
              "version": "6.1.4",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.2",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "arch/riscv/include/asm/kexec.h",
            "arch/riscv/kernel/elf_kexec.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2025-12-09T01:16:44.490",
  "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"
    }
  ],
  "vulnStatus": "Deferred",
  "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    [<00000000f95b17c4>] kmemleak_alloc+0x34/0x3e\n    [<00000000b9ec8e3e>] kmalloc_order+0x9c/0xc4\n    [<00000000a95cf02e>] kmalloc_order_trace+0x34/0xb6\n    [<00000000f01e68b4>] __kmalloc+0x5c2/0x62a\n    [<000000002bd497b2>] kvmalloc_node+0x66/0xd6\n    [<00000000906542fa>] of_kexec_alloc_and_setup_fdt+0xa6/0x6ea\n    [<00000000e1166bde>] elf_kexec_load+0x206/0x4ec\n    [<0000000036548e09>] kexec_image_load_default+0x40/0x4c\n    [<0000000079fbe1b4>] sys_kexec_file_load+0x1c4/0x322\n    [<0000000040c62c03>] ret_from_syscall+0x0/0x2\n\nIn elf_kexec_load(), a buffer is allocated via kvmalloc() to store fdt.\nWhile it's 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."
    }
  ],
  "lastModified": "2026-06-17T05:23:54.080",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}