In the Linux kernel, the following vulnerability has been resolved:
net: usbnet: Fix WARNING in usbnetstartxmit/usbsubmiturb
The syzbot fuzzer identified a problem in the usbnet driver:
usb 1-1: BOGUS urb xfer, pipe 3 != type 1 WARNING: CPU: 0 PID: 754 at drivers/usb/core/urb.c:504 usbsubmiturb+0xed6/0x1880 drivers/usb/core/urb.c:504 Modules linked in: CPU: 0 PID: 754 Comm: kworker/0:2 Not tainted 6.4.0-rc7-syzkaller-00014-g692b7dc87ca6 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/27/2023 Workqueue: mld mldifcwork RIP: 0010:usbsubmiturb+0xed6/0x1880 drivers/usb/core/urb.c:504 Code: 7c 24 18 e8 2c b4 5b fb 48 8b 7c 24 18 e8 42 07 f0 fe 41 89 d8 44 89 e1 4c 89 ea 48 89 c6 48 c7 c7 a0 c9 fc 8a e8 5a 6f 23 fb <0f> 0b e9 58 f8 ff ff e8 fe b3 5b fb 48 81 c5 c0 05 00 00 e9 84 f7 RSP: 0018:ffffc9000463f568 EFLAGS: 00010086 RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000000 RDX: ffff88801eb28000 RSI: ffffffff814c03b7 RDI: 0000000000000001 RBP: ffff8881443b7190 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000003 R13: ffff88802a77cb18 R14: 0000000000000003 R15: ffff888018262500 FS: 0000000000000000(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000556a99c15a18 CR3: 0000000028c71000 CR4: 0000000000350ef0 Call Trace: <TASK> usbnetstartxmit+0xfe5/0x2190 drivers/net/usb/usbnet.c:1453 _netdevstartxmit include/linux/netdevice.h:4918 [inline] netdevstartxmit include/linux/netdevice.h:4932 [inline] xmitone net/core/dev.c:3578 [inline] devhardstart_xmit+0x187/0x700 net/core/dev.c:3594 ...
This bug is caused by the fact that usbnet trusts the bulk endpoint addresses its probe routine receives in the driver_info structure, and it does not check to see that these endpoints actually exist and have the expected type and directions.
The fix is simply to add such a check.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53548.json",
"cna_assigner": "Linux"
}"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53548.json"
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5e1627cb43ddf1b24b92eb26f8d958a3f5676ccb",
"signature_type": "Function",
"digest": {
"function_hash": "237010013268517500519469675992549495338",
"length": 4363.0
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_probe"
},
"id": "CVE-2023-53548-000b3fb5",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1bebbd9b8037a9cc75984317cb495dec4824c399",
"signature_type": "Line",
"digest": {
"line_hashes": [
"235690218011019970612990812837946575498",
"199449992081563601988416588792663522289",
"47866867377880791659044216446394807166",
"314959047327560709554491060456332718533",
"22603878740102540557227207884566124477",
"4025396908204930479158958236171070869",
"147194973018047710336991492930704269204"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"id": "CVE-2023-53548-088b7432",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1bebbd9b8037a9cc75984317cb495dec4824c399",
"signature_type": "Function",
"digest": {
"function_hash": "237010013268517500519469675992549495338",
"length": 4363.0
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_probe"
},
"id": "CVE-2023-53548-110f8049",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@53c250ea57cf03af41339234b9855ae284f9db91",
"signature_type": "Line",
"digest": {
"line_hashes": [
"235690218011019970612990812837946575498",
"199449992081563601988416588792663522289",
"47866867377880791659044216446394807166",
"314959047327560709554491060456332718533",
"22603878740102540557227207884566124477",
"4025396908204930479158958236171070869",
"147194973018047710336991492930704269204"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"id": "CVE-2023-53548-24c84562",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0dd3e0c31bf3e933fb85faf1443833aef90b8e46",
"signature_type": "Line",
"digest": {
"line_hashes": [
"235690218011019970612990812837946575498",
"199449992081563601988416588792663522289",
"47866867377880791659044216446394807166",
"314959047327560709554491060456332718533",
"22603878740102540557227207884566124477",
"4025396908204930479158958236171070869",
"147194973018047710336991492930704269204"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"id": "CVE-2023-53548-5ac306ec",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ec0d0be41721aca683c5606354a58ee2c687e3f8",
"signature_type": "Line",
"digest": {
"line_hashes": [
"235690218011019970612990812837946575498",
"199449992081563601988416588792663522289",
"47866867377880791659044216446394807166",
"314959047327560709554491060456332718533",
"22603878740102540557227207884566124477",
"4025396908204930479158958236171070869",
"147194973018047710336991492930704269204"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"id": "CVE-2023-53548-713aef09",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@27d0f755d649d388fcd12f01436c9a33289e14e3",
"signature_type": "Function",
"digest": {
"function_hash": "323284106257674137791006652459033157184",
"length": 4396.0
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_probe"
},
"id": "CVE-2023-53548-718b00e9",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a05ac5d00eb7fcb2fda806caa4f56e88df6bc6bb",
"signature_type": "Function",
"digest": {
"function_hash": "48408386916425108479130611534509718049",
"length": 4312.0
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_probe"
},
"id": "CVE-2023-53548-899e57d7",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a05ac5d00eb7fcb2fda806caa4f56e88df6bc6bb",
"signature_type": "Line",
"digest": {
"line_hashes": [
"235690218011019970612990812837946575498",
"199449992081563601988416588792663522289",
"47866867377880791659044216446394807166",
"314959047327560709554491060456332718533",
"22603878740102540557227207884566124477",
"4025396908204930479158958236171070869",
"147194973018047710336991492930704269204"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"id": "CVE-2023-53548-9e3e2acb",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5e1627cb43ddf1b24b92eb26f8d958a3f5676ccb",
"signature_type": "Line",
"digest": {
"line_hashes": [
"235690218011019970612990812837946575498",
"199449992081563601988416588792663522289",
"47866867377880791659044216446394807166",
"314959047327560709554491060456332718533",
"22603878740102540557227207884566124477",
"4025396908204930479158958236171070869",
"147194973018047710336991492930704269204"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"id": "CVE-2023-53548-a0122882",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ec0d0be41721aca683c5606354a58ee2c687e3f8",
"signature_type": "Function",
"digest": {
"function_hash": "334840594375487345674387447136576872718",
"length": 4286.0
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_probe"
},
"id": "CVE-2023-53548-a4b3a5e0",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a0715d04cf687a7e21f0d6ac8c1d479294a3f6f8",
"signature_type": "Line",
"digest": {
"line_hashes": [
"235690218011019970612990812837946575498",
"199449992081563601988416588792663522289",
"47866867377880791659044216446394807166",
"314959047327560709554491060456332718533",
"22603878740102540557227207884566124477",
"4025396908204930479158958236171070869",
"147194973018047710336991492930704269204"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"id": "CVE-2023-53548-b7a211df",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@27d0f755d649d388fcd12f01436c9a33289e14e3",
"signature_type": "Line",
"digest": {
"line_hashes": [
"235690218011019970612990812837946575498",
"199449992081563601988416588792663522289",
"47866867377880791659044216446394807166",
"314959047327560709554491060456332718533",
"22603878740102540557227207884566124477",
"4025396908204930479158958236171070869",
"147194973018047710336991492930704269204"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"id": "CVE-2023-53548-ce36de20",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@53c250ea57cf03af41339234b9855ae284f9db91",
"signature_type": "Function",
"digest": {
"function_hash": "257689136983205878341666580830452096357",
"length": 4300.0
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_probe"
},
"id": "CVE-2023-53548-dcb89df8",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a0715d04cf687a7e21f0d6ac8c1d479294a3f6f8",
"signature_type": "Function",
"digest": {
"function_hash": "314346685676919908438567841290002556467",
"length": 4324.0
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_probe"
},
"id": "CVE-2023-53548-dcd08c5a",
"signature_version": "v1"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0dd3e0c31bf3e933fb85faf1443833aef90b8e46",
"signature_type": "Function",
"digest": {
"function_hash": "237010013268517500519469675992549495338",
"length": 4363.0
},
"deprecated": false,
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_probe"
},
"id": "CVE-2023-53548-ddb2cb00",
"signature_version": "v1"
}
]