{"id":"CVE-2026-90024","revision":"356d3279f3684b1ab03b3145192952a8","records":[{"revision":"356d3279f3684b1ab03b3145192952a8","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-90024","aliases":[],"title":"usb: gadget: midi2: Fix null-pointer dereference in f_midi2_free_ep_reqs","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nusb: gadget: midi2: Fix null-pointer dereference in f_midi2_free_ep_reqs\n\nA null-pointer dereference occurs in f_midi2_free_ep_reqs() when attempting\nto clean up an endpoint that was never initialized.\n\nWhen configuring the MIDI 2.0 gadget via configfs and setting the block\ndirection to SNDRV_UMP_DIR_INPUT, the initialization of the midi1_ep_out\nendpoint is explicitly skipped during the gadget bind phase\n(f_midi2_bind()). As a result, the usb_ep->card field remains NULL.\n\nLater, when the host sets the alternate setting, f_midi2_set_alt()\nunconditionally stops both the IN and OUT endpoints by calling\nf_midi2_stop_eps(), which in turn calls f_midi2_free_ep_reqs() for both\nendpoints. When f_midi2_free_ep_reqs() is called for the uninitialized\nmidi1_ep_out, it attempts to dereference usb_ep->card to determine the\nnumber of requests to free, leading to a crash.\n\nFix this by using usb_ep->num_reqs instead of usb_ep->card->info.num_reqs\nin f_midi2_free_ep_reqs(). usb_ep->num_reqs is correctly set during\nf_midi2_init_ep() and remains 0 if the endpoint was never initialized,\nsafely avoiding the loop. For consistency, apply the same change to\nf_midi2_alloc_ep_reqs().\n\nOops: general protection fault, probably for non-canonical address\n0xdffffc00000000ee: 0000 [#1] SMP KASAN NOPTI\nKASAN: null-ptr-deref in range [0x0000000000000770-0x0000000000000777]\n...\nRIP: 0010:f_midi2_free_ep_reqs drivers/usb/gadget/function/f_midi2.c:1166\n[inline]\nRIP: 0010:f_midi2_stop_eps+0x28e/0x4d0\ndrivers/usb/gadget/function/f_midi2.c:1246\n...\nCall Trace:\n <TASK>\n f_midi2_set_alt+0x11c/0xf00 drivers/usb/gadget/function/f_midi2.c:1296\n composite_setup+0x1ffd/0x3480 drivers/usb/gadget/composite.c:1933\n configfs_composite_setup+0xbd/0x100 drivers/usb/gadget/configfs.c:1877","state":0,"publishedAt":"2026-09-16T10:33:27.624+00:00","modifiedAt":"2026-10-19T08:56:38.894+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/usb/gadget/function/f_midi2.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"8b645922b22303cec4628dbbbf6c8553d1cdec87\",\n                            \"lessThan\": \"51ddc55c75087ac25342f6d73d3aeaf14f59bd76\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"8b645922b22303cec4628dbbbf6c8553d1cdec87\",\n                            \"lessThan\": \"5b92f6a0c7c01efbb335d837ecdf34d38d98720f\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"8b645922b22303cec4628dbbbf6c8553d1cdec87\",\n                            \"lessThan\": \"9c3d5091e3568ed48ac4c5b08a78eb06fad0d70a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"8b645922b22303cec4628dbbbf6c8553d1cdec87\",\n                            \"lessThan\": \"4079f19a0e1ce76f1e21a398f02aca150ceaaf61\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"8b645922b22303cec4628dbbbf6c8553d1cdec87\",\n                            \"lessThan\": \"f0efaf1872949e96d213c8e910fd9517f7d7c406\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/usb/gadget/function/f_midi2.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"6.6\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"6.6\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.157\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.110\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.51\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.5\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/51ddc55c75087ac25342f6d73d3aeaf14f59bd76","https://git.kernel.org/stable/c/5b92f6a0c7c01efbb335d837ecdf34d38d98720f","https://git.kernel.org/stable/c/9c3d5091e3568ed48ac4c5b08a78eb06fad0d70a","https://git.kernel.org/stable/c/4079f19a0e1ce76f1e21a398f02aca150ceaaf61","https://git.kernel.org/stable/c/f0efaf1872949e96d213c8e910fd9517f7d7c406"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-90024","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-90024","identifiers":["CVE-2026-90024"]},"retained":false,"historicalAffected":[]}],"coverage":[]}