← Back to CVE Explorer

CVE-2023-53693

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: USB: gadget: Fix the memory leak in raw_gadget driver Currently, increasing raw_dev->count happens before invoke the raw_queue_event(), if the raw_queue_event() return error, invoke raw_release() will not trigger the dev_free() to be called. [ 268.905865][ T5067] raw-gadget.0 gadget.0: failed to queue event [ 268.912053][ T5067] udc dummy_udc.0: failed to start USB Raw Gadget: -12 [ 268.918885][ T5067] raw-gadget.0: probe of gadget.0 failed with error -12 [ 268.925956][ T5067] UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy [ 268.934657][ T5067] misc raw-gadget: fail, usb_gadget_register_driver returned -16 BUG: memory leak [<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076 [<ffffffff8347eb55>] kmalloc include/linux/slab.h:582 [inline] [<ffffffff8347eb55>] kzalloc include/linux/slab.h:703 [inline] [<ffffffff8347eb55>] dev_new drivers/usb/gadget/legacy/raw_gadget.c:191 [inline] [<ffffffff8347eb55>] raw_open+0x45/0x110 drivers/usb/gadget/legacy/raw_gadget.c:385 [<ffffffff827d1d09>] misc_open+0x1a9/0x1f0 drivers/char/misc.c:165 [<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076 [<ffffffff8347cd2f>] kmalloc include/linux/slab.h:582 [inline] [<ffffffff8347cd2f>] raw_ioctl_init+0xdf/0x410 drivers/usb/gadget/legacy/raw_gadget.c:460 [<ffffffff8347dfe9>] raw_ioctl+0x5f9/0x1120 drivers/usb/gadget/legacy/raw_gadget.c:1250 [<ffffffff81685173>] vfs_ioctl fs/ioctl.c:51 [inline] [<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076 [<ffffffff833ecc6a>] kmalloc include/linux/slab.h:582 [inline] [<ffffffff833ecc6a>] kzalloc include/linux/slab.h:703 [inline] [<ffffffff833ecc6a>] dummy_alloc_request+0x5a/0xe0 drivers/usb/gadget/udc/dummy_hcd.c:665 [<ffffffff833e9132>] usb_ep_alloc_request+0x22/0xd0 drivers/usb/gadget/udc/core.c:196 [<ffffffff8347f13d>] gadget_bind+0x6d/0x370 drivers/usb/gadget/legacy/raw_gadget.c:292 This commit therefore invoke kref_get() under the condition that raw_queue_event() return success.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Deferred
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2025-10-22 14:15:43.787000
Last modified
2026-10-28 19:10:00.193000
View original CVE JSON
{
  "id": "CVE-2023-53693",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2025-10-22T14:15:43.787",
  "lastModified": "2026-10-28T19:10:00.193",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nUSB: gadget: Fix the memory leak in raw_gadget driver\n\nCurrently, increasing raw_dev->count happens before invoke the\nraw_queue_event(), if the raw_queue_event() return error, invoke\nraw_release() will not trigger the dev_free() to be called.\n\n[  268.905865][ T5067] raw-gadget.0 gadget.0: failed to queue event\n[  268.912053][ T5067] udc dummy_udc.0: failed to start USB Raw Gadget: -12\n[  268.918885][ T5067] raw-gadget.0: probe of gadget.0 failed with error -12\n[  268.925956][ T5067] UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy\n[  268.934657][ T5067] misc raw-gadget: fail, usb_gadget_register_driver returned -16\n\nBUG: memory leak\n\n[<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076\n[<ffffffff8347eb55>] kmalloc include/linux/slab.h:582 [inline]\n[<ffffffff8347eb55>] kzalloc include/linux/slab.h:703 [inline]\n[<ffffffff8347eb55>] dev_new drivers/usb/gadget/legacy/raw_gadget.c:191 [inline]\n[<ffffffff8347eb55>] raw_open+0x45/0x110 drivers/usb/gadget/legacy/raw_gadget.c:385\n[<ffffffff827d1d09>] misc_open+0x1a9/0x1f0 drivers/char/misc.c:165\n\n[<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076\n[<ffffffff8347cd2f>] kmalloc include/linux/slab.h:582 [inline]\n[<ffffffff8347cd2f>] raw_ioctl_init+0xdf/0x410 drivers/usb/gadget/legacy/raw_gadget.c:460\n[<ffffffff8347dfe9>] raw_ioctl+0x5f9/0x1120 drivers/usb/gadget/legacy/raw_gadget.c:1250\n[<ffffffff81685173>] vfs_ioctl fs/ioctl.c:51 [inline]\n\n[<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076\n[<ffffffff833ecc6a>] kmalloc include/linux/slab.h:582 [inline]\n[<ffffffff833ecc6a>] kzalloc include/linux/slab.h:703 [inline]\n[<ffffffff833ecc6a>] dummy_alloc_request+0x5a/0xe0 drivers/usb/gadget/udc/dummy_hcd.c:665\n[<ffffffff833e9132>] usb_ep_alloc_request+0x22/0xd0 drivers/usb/gadget/udc/core.c:196\n[<ffffffff8347f13d>] gadget_bind+0x6d/0x370 drivers/usb/gadget/legacy/raw_gadget.c:292\n\nThis commit therefore invoke kref_get() under the condition that\nraw_queue_event() return success."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nUSB: gadget: Corrección de la fuga de memoria en el controlador raw_gadget\n\nActualmente, el incremento de raw_dev  ->  count ocurre antes de invocar a raw_queue_event(), si raw_queue_event() devuelve un error, invocar a raw_release() no activará la llamada a dev_free().\n\n[ 268.905865][ T5067] raw-gadget.0 gadget.0: falló al encolar evento\n[ 268.912053][ T5067] udc dummy_udc.0: falló al iniciar USB Raw Gadget: -12\n[ 268.918885][ T5067] raw-gadget.0: la sonda de gadget.0 falló con error -12\n[ 268.925956][ T5067] UDC core: USB Raw Gadget: no pudo encontrar un UDC disponible o está ocupado\n[ 268.934657][ T5067] misc raw-gadget: fallo, usb_gadget_register_driver devolvió -16\n\nERROR: fuga de memoria\n\n[[ffffffff8154bf94]] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076\n[[ffffffff8347eb55]] kmalloc include/linux/slab.h:582 [inline]\n[[ffffffff8347eb55]] kzalloc include/linux/slab.h:703 [inline]\n[[ffffffff8347eb55]] dev_new drivers/usb/gadget/legacy/raw_gadget.c:191 [inline]\n[[ffffffff8347eb55]] raw_open+0x45/0x110 drivers/usb/gadget/legacy/raw_gadget.c:385\n[[ffffffff827d1d09]] misc_open+0x1a9/0x1f0 drivers/char/misc.c:165\n\n[[ffffffff8154bf94]] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076\n[[ffffffff8347cd2f]] kmalloc include/linux/slab.h:582 [inline]\n[[ffffffff8347cd2f]] raw_ioctl_init+0xdf/0x410 drivers/usb/gadget/legacy/raw_gadget.c:460\n[[ffffffff8347dfe9]] raw_ioctl+0x5f9/0x1120 drivers/usb/gadget/legacy/raw_gadget.c:1250\n[[ffffffff81685173]] vfs_ioctl fs/ioctl.c:51 [inline]\n\n[[ffffffff8154bf94]] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076\n[[ffffffff833ecc6a]] kmalloc include/linux/slab.h:582 [inline]\n[[ffffffff833ecc6a]] kzalloc include/linux/slab.h:703 [inline]\n[[ffffffff833ecc6a]] dummy_alloc_request+0x5a/0xe0 drivers/usb/gadget/udc/dummy_hcd.c:665\n[[ffffffff833e9132]] usb_ep_alloc_request+0x22/0xd0 drivers/usb/gadget/udc/core.c:196\n[[ffffffff8347f13d]] gadget_bind+0x6d/0x370 drivers/usb/gadget/legacy/raw_gadget.c:292\n\nEste commit, por lo tanto, invoca kref_get() bajo la condición de que raw_queue_event() devuelva éxito."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/usb/gadget/legacy/raw_gadget.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "f2c2e717642c66f7fe7e5dd69b2e8ff5849f4d10",
              "lessThan": "68e6287ac61dc22513cd39f02b9ac1fef28513e4",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f2c2e717642c66f7fe7e5dd69b2e8ff5849f4d10",
              "lessThan": "0f7a2b567197798da7bfa2252f4485c0ca6c6266",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f2c2e717642c66f7fe7e5dd69b2e8ff5849f4d10",
              "lessThan": "de77000c1923d7942f9b4f08447c8feeae1c0f33",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f2c2e717642c66f7fe7e5dd69b2e8ff5849f4d10",
              "lessThan": "9934e5d07c0dc294169a7d52f6309f35cd6d7755",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f2c2e717642c66f7fe7e5dd69b2e8ff5849f4d10",
              "lessThan": "83e30f2bf86ef7c38fbd476ed81a88522b620628",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/usb/gadget/legacy/raw_gadget.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.7",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.7",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.190",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.124",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.43",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.4.8",
              "lessThanOrEqual": "6.4.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.5",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/0f7a2b567197798da7bfa2252f4485c0ca6c6266",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/68e6287ac61dc22513cd39f02b9ac1fef28513e4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/83e30f2bf86ef7c38fbd476ed81a88522b620628",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/9934e5d07c0dc294169a7d52f6309f35cd6d7755",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/de77000c1923d7942f9b4f08447c8feeae1c0f33",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}