« Volver al listado

CVE-2022-50578

Estado: AplazadaSin puntuar—

In the Linux kernel, the following vulnerability has been resolved:

class: fix possible memory leak in __class_register()

If class_add_groups() returns error, the 'cp->subsys' need be unregister, and the 'cp' need be freed.

We can not call kset_unregister() here, because the 'cls' will be freed in callback function class_release() and it's also freed in caller's error path, it will cause double free.

So fix this by calling kobject_del() and kfree_const(name) to cleanup kobject. Besides, call kfree() to free the 'cp'.

Fault injection test can trigger this:

Detalles técnicos trazas, registros y código del informe original
unreferenced object 0xffff888102fa8190 (size 8):
  comm "modprobe", pid 502, jiffies 4294906074 (age 49.296s)
  hex dump (first 8 bytes):
    70 6b 74 63 64 76 64 00                          pktcdvd.
  backtrace:
    [<00000000e7c7703d>] __kmalloc_track_caller+0x1ae/0x320
    [<000000005e4d70bc>] kstrdup+0x3a/0x70
    [<00000000c2e5e85a>] kstrdup_const+0x68/0x80
    [<000000000049a8c7>] kvasprintf_const+0x10b/0x190
    [<0000000029123163>] kobject_set_name_vargs+0x56/0x150
    [<00000000747219c9>] kobject_set_name+0xab/0xe0
    [<0000000005f1ea4e>] __class_register+0x15c/0x49a

unreferenced object 0xffff888037274000 (size 1024):
  comm "modprobe", pid 502, jiffies 4294906074 (age 49.296s)
  hex dump (first 32 bytes):
    00 40 27 37 80 88 ff ff 00 40 27 37 80 88 ff ff  .@'7.....@'7....
    00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
  backtrace:
    [<00000000151f9600>] kmem_cache_alloc_trace+0x17c/0x2f0
    [<00000000ecf3dd95>] __class_register+0x86/0x49a

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-50578",
  "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": "ced6473e7486702f530a49f886b73195e4977734",
              "lessThan": "4efa5443817c1b6de22d401aeca5b2481e835f8c",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ced6473e7486702f530a49f886b73195e4977734",
              "lessThan": "3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ced6473e7486702f530a49f886b73195e4977734",
              "lessThan": "3e0efc3f3f5e5c73996782f8db69963e501bb878",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ced6473e7486702f530a49f886b73195e4977734",
              "lessThan": "18a7200646958cf8e1b8a933de08122fc50676cd",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ced6473e7486702f530a49f886b73195e4977734",
              "lessThan": "417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ced6473e7486702f530a49f886b73195e4977734",
              "lessThan": "e764ad5918a099ebeb909ccff83893a714e497e1",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ced6473e7486702f530a49f886b73195e4977734",
              "lessThan": "abaedb68a769e6bf36836b55a2f49b531c5f3f7b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ced6473e7486702f530a49f886b73195e4977734",
              "lessThan": "8c3e8a6bdb5253b97ad532570f8b5db5f7a06407",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "drivers/base/class.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.10"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "4.10",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "4.14.303",
              "versionType": "semver",
              "lessThanOrEqual": "4.14.*"
            },
            {
              "status": "unaffected",
              "version": "4.19.270",
              "versionType": "semver",
              "lessThanOrEqual": "4.19.*"
            },
            {
              "status": "unaffected",
              "version": "5.4.229",
              "versionType": "semver",
              "lessThanOrEqual": "5.4.*"
            },
            {
              "status": "unaffected",
              "version": "5.10.163",
              "versionType": "semver",
              "lessThanOrEqual": "5.10.*"
            },
            {
              "status": "unaffected",
              "version": "5.15.86",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "status": "unaffected",
              "version": "6.0.16",
              "versionType": "semver",
              "lessThanOrEqual": "6.0.*"
            },
            {
              "status": "unaffected",
              "version": "6.1.2",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.2",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "drivers/base/class.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2025-10-22T14:15:42.803",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/18a7200646958cf8e1b8a933de08122fc50676cd",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/3e0efc3f3f5e5c73996782f8db69963e501bb878",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/4efa5443817c1b6de22d401aeca5b2481e835f8c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8c3e8a6bdb5253b97ad532570f8b5db5f7a06407",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/abaedb68a769e6bf36836b55a2f49b531c5f3f7b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e764ad5918a099ebeb909ccff83893a714e497e1",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Deferred",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nclass: fix possible memory leak in __class_register()\n\nIf class_add_groups() returns error, the 'cp->subsys' need be\nunregister, and the 'cp' need be freed.\n\nWe can not call kset_unregister() here, because the 'cls' will\nbe freed in callback function class_release() and it's also\nfreed in caller's error path, it will cause double free.\n\nSo fix this by calling kobject_del() and kfree_const(name) to\ncleanup kobject. Besides, call kfree() to free the 'cp'.\n\nFault injection test can trigger this:\n\nunreferenced object 0xffff888102fa8190 (size 8):\n  comm \"modprobe\", pid 502, jiffies 4294906074 (age 49.296s)\n  hex dump (first 8 bytes):\n    70 6b 74 63 64 76 64 00                          pktcdvd.\n  backtrace:\n    [<00000000e7c7703d>] __kmalloc_track_caller+0x1ae/0x320\n    [<000000005e4d70bc>] kstrdup+0x3a/0x70\n    [<00000000c2e5e85a>] kstrdup_const+0x68/0x80\n    [<000000000049a8c7>] kvasprintf_const+0x10b/0x190\n    [<0000000029123163>] kobject_set_name_vargs+0x56/0x150\n    [<00000000747219c9>] kobject_set_name+0xab/0xe0\n    [<0000000005f1ea4e>] __class_register+0x15c/0x49a\n\nunreferenced object 0xffff888037274000 (size 1024):\n  comm \"modprobe\", pid 502, jiffies 4294906074 (age 49.296s)\n  hex dump (first 32 bytes):\n    00 40 27 37 80 88 ff ff 00 40 27 37 80 88 ff ff  .@'7.....@'7....\n    00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........\n  backtrace:\n    [<00000000151f9600>] kmem_cache_alloc_trace+0x17c/0x2f0\n    [<00000000ecf3dd95>] __class_register+0x86/0x49a"
    }
  ],
  "lastModified": "2026-06-17T05:23:49.567",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}