In the Linux kernel, the following vulnerability has been resolved:
usb: cdns3 fix use-after-free at workaround 2
BUG: KFENCE: use-after-free read in _listdelentryvalid+0x10/0xac
cdns3wa2removeoldrequest() { ... kfree(privreq->request.buf); cdns3gadgetepfreerequest(&privep->endpoint, &privreq->request); listdelinit(&privreq->list); ^^^ use after free ... }
cdns3gadgetepfreerequest() free the space pointed by privreq, but privreq is used in the following listdelinit().
This patch move listdelinit() before cdns3gadgetepfreerequest().
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50034.json"
}[
{
"digest": {
"function_hash": "65576552425511711327769710929299600083",
"length": 450.0
},
"id": "CVE-2022-50034-0887334f",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c",
"function": "cdns3_wa2_remove_old_request"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6fd50446e7c9a98b4bcf96815f5c9602a16ea472",
"deprecated": false,
"signature_type": "Function"
},
{
"digest": {
"function_hash": "65576552425511711327769710929299600083",
"length": 450.0
},
"id": "CVE-2022-50034-0c8d6215",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c",
"function": "cdns3_wa2_remove_old_request"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7d602f30149a117eea260208b1661bc404c21dfd",
"deprecated": false,
"signature_type": "Function"
},
{
"digest": {
"function_hash": "65576552425511711327769710929299600083",
"length": 450.0
},
"id": "CVE-2022-50034-219549ac",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c",
"function": "cdns3_wa2_remove_old_request"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c3c1dbad3a2db32ecf371c97f2058491b8ba0f9a",
"deprecated": false,
"signature_type": "Function"
},
{
"digest": {
"function_hash": "65576552425511711327769710929299600083",
"length": 450.0
},
"id": "CVE-2022-50034-39f29224",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/gadget.c",
"function": "cdns3_wa2_remove_old_request"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e65d9b7147d7be3504893ca7dfb85286bda83d40",
"deprecated": false,
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"160290003952394112814719453668655024115",
"66473511173810453140783186416275078033",
"83973214398140824027494940829142526769",
"312610791760989958645842040193266986363",
"253016916261995485907959310160419227552",
"158795668781523660064941314030048208177",
"226479132396547425721334130105638659778"
],
"threshold": 0.9
},
"id": "CVE-2022-50034-604d1e40",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c3c1dbad3a2db32ecf371c97f2058491b8ba0f9a",
"deprecated": false,
"signature_type": "Line"
},
{
"digest": {
"function_hash": "65576552425511711327769710929299600083",
"length": 450.0
},
"id": "CVE-2022-50034-68119ef2",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/gadget.c",
"function": "cdns3_wa2_remove_old_request"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6d7ac60098b206d0472475b666cb09d556bec03d",
"deprecated": false,
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"160290003952394112814719453668655024115",
"66473511173810453140783186416275078033",
"83973214398140824027494940829142526769",
"312610791760989958645842040193266986363",
"253016916261995485907959310160419227552",
"158795668781523660064941314030048208177",
"226479132396547425721334130105638659778"
],
"threshold": 0.9
},
"id": "CVE-2022-50034-734aa180",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/gadget.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e65d9b7147d7be3504893ca7dfb85286bda83d40",
"deprecated": false,
"signature_type": "Line"
},
{
"digest": {
"line_hashes": [
"160290003952394112814719453668655024115",
"66473511173810453140783186416275078033",
"83973214398140824027494940829142526769",
"312610791760989958645842040193266986363",
"253016916261995485907959310160419227552",
"158795668781523660064941314030048208177",
"226479132396547425721334130105638659778"
],
"threshold": 0.9
},
"id": "CVE-2022-50034-9b10b191",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6fd50446e7c9a98b4bcf96815f5c9602a16ea472",
"deprecated": false,
"signature_type": "Line"
},
{
"digest": {
"line_hashes": [
"160290003952394112814719453668655024115",
"66473511173810453140783186416275078033",
"83973214398140824027494940829142526769",
"312610791760989958645842040193266986363",
"253016916261995485907959310160419227552",
"158795668781523660064941314030048208177",
"226479132396547425721334130105638659778"
],
"threshold": 0.9
},
"id": "CVE-2022-50034-bec4298c",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/gadget.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6d7ac60098b206d0472475b666cb09d556bec03d",
"deprecated": false,
"signature_type": "Line"
},
{
"digest": {
"line_hashes": [
"160290003952394112814719453668655024115",
"66473511173810453140783186416275078033",
"83973214398140824027494940829142526769",
"312610791760989958645842040193266986363",
"253016916261995485907959310160419227552",
"158795668781523660064941314030048208177",
"226479132396547425721334130105638659778"
],
"threshold": 0.9
},
"id": "CVE-2022-50034-ef08f23e",
"signature_version": "v1",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7d602f30149a117eea260208b1661bc404c21dfd",
"deprecated": false,
"signature_type": "Line"
}
]
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50034.json"