A flaw was found in the USB redirector device (usb-redir) of QEMU. Small USB packets are combined into a single, large transfer request, to reduce the overhead and improve performance. The combined size of the bulk transfer is used to dynamically allocate a variable length array (VLA) on the stack without proper validation. Since the total size is not bounded, a malicious guest could use this flaw to influence the array length and cause the QEMU process to perform an excessive allocation on the stack, resulting in a denial of service.
{ "vanir_signatures": [ { "digest": { "threshold": 0.9, "line_hashes": [ "269400761726207554090353202840902315257", "119307344340641259751801519692907203016", "326548559512027486046572904986022376072", "73041713572673512055747119237799287705" ] }, "target": { "file": "hw/usb/combined-packet.c" }, "source": "https://gitlab.com/qemu-project/qemu@05a40b172e4d691371534828078be47e7fff524c", "id": "CVE-2021-3527-4cab5e44", "deprecated": false, "signature_type": "Line", "signature_version": "v1" }, { "digest": { "threshold": 0.9, "line_hashes": [ "167443947742219700222957101252243774600", "61911157104635718831387678215906986250", "29568767801218084532825511420516210099", "88460353428432787954060144963198367115", "293827903315787450183182877461871256600", "90873833699346552304369370712175299809", "37900396691202462739205124391483260441", "242002003889685031535552614557524308098", "51051223527711322627583931772797510787", "210975785683925942205039452318950435298", "108317851574551643512430908095355764785", "83811626812010732757727657331821254659" ] }, "target": { "file": "hw/usb/redirect.c" }, "source": "https://gitlab.com/qemu-project/qemu@7ec54f9eb62b5d177e30eb8b1cad795a5f8d8986", "id": "CVE-2021-3527-503e3bf1", "deprecated": false, "signature_type": "Line", "signature_version": "v1" }, { "digest": { "function_hash": "193074547064934338397412369714946632047", "length": 3283.0 }, "target": { "file": "hw/usb/redirect.c", "function": "usbredir_handle_iso_data" }, "source": "https://gitlab.com/qemu-project/qemu@7ec54f9eb62b5d177e30eb8b1cad795a5f8d8986", "id": "CVE-2021-3527-7596b36c", "deprecated": false, "signature_type": "Function", "signature_version": "v1" }, { "digest": { "function_hash": "166676994960784205671750699193853905376", "length": 523.0 }, "target": { "file": "hw/usb/redirect.c", "function": "usbredir_handle_interrupt_out_data" }, "source": "https://gitlab.com/qemu-project/qemu@7ec54f9eb62b5d177e30eb8b1cad795a5f8d8986", "id": "CVE-2021-3527-adb2a197", "deprecated": false, "signature_type": "Function", "signature_version": "v1" }, { "digest": { "function_hash": "249538098380142255455224067407001734942", "length": 1311.0 }, "target": { "file": "hw/usb/combined-packet.c", "function": "usb_ep_combine_input_packets" }, "source": "https://gitlab.com/qemu-project/qemu@05a40b172e4d691371534828078be47e7fff524c", "id": "CVE-2021-3527-b2c39117", "deprecated": false, "signature_type": "Function", "signature_version": "v1" }, { "digest": { "function_hash": "198368438371595159633120831886524687622", "length": 1398.0 }, "target": { "file": "hw/usb/redirect.c", "function": "usbredir_handle_bulk_data" }, "source": "https://gitlab.com/qemu-project/qemu@7ec54f9eb62b5d177e30eb8b1cad795a5f8d8986", "id": "CVE-2021-3527-d8d1898b", "deprecated": false, "signature_type": "Function", "signature_version": "v1" } ] }