CVE-2026-90020 (GCVE-0-2026-90020)
Vulnerability from cvelistv5 – Published: 2026-09-16 10:33 – Updated: 2026-09-16 10:33
VLAI
EPSS
VEX
Title
USB: gadget: fix NULL pointer dereference in gadget_dev_ioctl()
Summary
In the Linux kernel, the following vulnerability has been resolved:
USB: gadget: fix NULL pointer dereference in gadget_dev_ioctl()
gadget_dev_ioctl() reads dev->gadget before acquiring dev->lock, but
dev->state is checked after acquiring the lock. Therefore a concurrent
bind can change the device state between these operations, which can
leave ioctl with a stale NULL gadget pointer and causing a NULL pointer
dereference at gadget->ops->ioctl.
Read dev->gadget while holding dev->lock so that the gadget pointer
and device state are sampled consistently.
Severity
No CVSS data available.
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 8be30959be31b4205e3bdd2e2a6221f3a2ee7ea1
(git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < e8219accce2f6d3502ed71f5b5e854ecf27249a6 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 87cbf9410b12f5c2d659bb01e8ecf6517cb9f28c (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 162178ca83c3de986900385a0477eb539f8e1a7e (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < ebd916fdfefaacbc0e577f7037ec96b31a105e5f (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < c29a83c1ff3f06d5751f6d365b606c9f81ccc4cb (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 64ec019bf9a8b12f53b9f2777d65aadb730b5a84 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < dd0eed9e165b1a6292f49e622e3dd0b7d99b106d (git) Affected: 0 , < 5.10.270 (semver) Affected: 0 , < 5.15.221 (semver) Affected: 0 , < 6.1.188 (semver) Affected: 0 , < 6.6.157 (semver) Affected: 0 , < 6.12.110 (semver) Affected: 0 , < 6.18.51 (semver) Affected: 0 , < 7.2.5 (semver) |
guessed | |
| Linux | Linux |
Unaffected:
5.10.270 , ≤ 5.10.*
(semver)
Unaffected: 5.15.221 , ≤ 5.15.* (semver) Unaffected: 6.1.188 , ≤ 6.1.* (semver) Unaffected: 6.6.157 , ≤ 6.6.* (semver) Unaffected: 6.12.110 , ≤ 6.12.* (semver) Unaffected: 6.18.51 , ≤ 6.18.* (semver) Unaffected: 7.2.5 , ≤ 7.2.* (semver) Unaffected: 7.3-rc2 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/usb/gadget/legacy/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8be30959be31b4205e3bdd2e2a6221f3a2ee7ea1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "e8219accce2f6d3502ed71f5b5e854ecf27249a6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "87cbf9410b12f5c2d659bb01e8ecf6517cb9f28c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "162178ca83c3de986900385a0477eb539f8e1a7e",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "ebd916fdfefaacbc0e577f7037ec96b31a105e5f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "c29a83c1ff3f06d5751f6d365b606c9f81ccc4cb",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "64ec019bf9a8b12f53b9f2777d65aadb730b5a84",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "dd0eed9e165b1a6292f49e622e3dd0b7d99b106d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5.10.270",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "5.15.221",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.1.188",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.6.157",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.12.110",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.18.51",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "7.2.5",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/usb/gadget/legacy/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3-rc2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3-rc2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nUSB: gadget: fix NULL pointer dereference in gadget_dev_ioctl()\n\ngadget_dev_ioctl() reads dev-\u003egadget before acquiring dev-\u003elock, but\ndev-\u003estate is checked after acquiring the lock. Therefore a concurrent\nbind can change the device state between these operations, which can\nleave ioctl with a stale NULL gadget pointer and causing a NULL pointer\ndereference at gadget-\u003eops-\u003eioctl.\n\nRead dev-\u003egadget while holding dev-\u003elock so that the gadget pointer\nand device state are sampled consistently."
}
],
"providerMetadata": {
"dateUpdated": "2026-09-16T10:33:24.866Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8be30959be31b4205e3bdd2e2a6221f3a2ee7ea1"
},
{
"url": "https://git.kernel.org/stable/c/e8219accce2f6d3502ed71f5b5e854ecf27249a6"
},
{
"url": "https://git.kernel.org/stable/c/87cbf9410b12f5c2d659bb01e8ecf6517cb9f28c"
},
{
"url": "https://git.kernel.org/stable/c/162178ca83c3de986900385a0477eb539f8e1a7e"
},
{
"url": "https://git.kernel.org/stable/c/ebd916fdfefaacbc0e577f7037ec96b31a105e5f"
},
{
"url": "https://git.kernel.org/stable/c/c29a83c1ff3f06d5751f6d365b606c9f81ccc4cb"
},
{
"url": "https://git.kernel.org/stable/c/64ec019bf9a8b12f53b9f2777d65aadb730b5a84"
},
{
"url": "https://git.kernel.org/stable/c/dd0eed9e165b1a6292f49e622e3dd0b7d99b106d"
}
],
"title": "USB: gadget: fix NULL pointer dereference in gadget_dev_ioctl()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90020",
"datePublished": "2026-09-16T10:33:24.866Z",
"dateReserved": "2026-09-11T19:38:34.781Z",
"dateUpdated": "2026-09-16T10:33:24.866Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-90020\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-16T11:17:14.903\",\"lastModified\":\"2026-09-16T11:17:14.903\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nUSB: gadget: fix NULL pointer dereference in gadget_dev_ioctl()\\n\\ngadget_dev_ioctl() reads dev-\u003egadget before acquiring dev-\u003elock, but\\ndev-\u003estate is checked after acquiring the lock. Therefore a concurrent\\nbind can change the device state between these operations, which can\\nleave ioctl with a stale NULL gadget pointer and causing a NULL pointer\\ndereference at gadget-\u003eops-\u003eioctl.\\n\\nRead dev-\u003egadget while holding dev-\u003elock so that the gadget pointer\\nand device state are sampled consistently.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/usb/gadget/legacy/inode.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"8be30959be31b4205e3bdd2e2a6221f3a2ee7ea1\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"e8219accce2f6d3502ed71f5b5e854ecf27249a6\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"87cbf9410b12f5c2d659bb01e8ecf6517cb9f28c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"162178ca83c3de986900385a0477eb539f8e1a7e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"ebd916fdfefaacbc0e577f7037ec96b31a105e5f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"c29a83c1ff3f06d5751f6d365b606c9f81ccc4cb\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"64ec019bf9a8b12f53b9f2777d65aadb730b5a84\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"dd0eed9e165b1a6292f49e622e3dd0b7d99b106d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.10.270\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.15.221\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.1.188\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.6.157\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.12.110\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.18.51\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"7.2.5\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/usb/gadget/legacy/inode.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.10.270\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.221\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.188\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.157\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.110\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.51\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2.5\",\"lessThanOrEqual\":\"7.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.3-rc2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/162178ca83c3de986900385a0477eb539f8e1a7e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/64ec019bf9a8b12f53b9f2777d65aadb730b5a84\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/87cbf9410b12f5c2d659bb01e8ecf6517cb9f28c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8be30959be31b4205e3bdd2e2a6221f3a2ee7ea1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c29a83c1ff3f06d5751f6d365b606c9f81ccc4cb\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/dd0eed9e165b1a6292f49e622e3dd0b7d99b106d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e8219accce2f6d3502ed71f5b5e854ecf27249a6\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/ebd916fdfefaacbc0e577f7037ec96b31a105e5f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
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…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.
Loading…