eth_get_gso_type in net/eth.c in QEMU 4.2.1 allows guest OS users to trigger an assertion failure. A guest can crash the QEMU process via packet data that lacks a valid Layer 3 protocol.
The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Qemu | Qemu | 4.2.1 (including) | 4.2.1 (including) |
| Advanced Virtualization for RHEL 8.3.1 | RedHat | virt:8.3-8030120210211160750.71132145 | * |
| Advanced Virtualization for RHEL 8.3.1 | RedHat | virt-devel:8.3-8030120210211160750.71132145 | * |
| Red Hat Enterprise Linux 8 | RedHat | virt-devel:rhel-8040020210721215855.522a0ee4 | * |
| Red Hat Enterprise Linux 8 | RedHat | virt:rhel-8040020210721215855.522a0ee4 | * |
| Qemu | Ubuntu | bionic | * |
| Qemu | Ubuntu | devel | * |
| Qemu | Ubuntu | esm-infra-legacy/trusty | * |
| Qemu | Ubuntu | esm-infra/bionic | * |
| Qemu | Ubuntu | esm-infra/focal | * |
| Qemu | Ubuntu | esm-infra/xenial | * |
| Qemu | Ubuntu | focal | * |
| Qemu | Ubuntu | groovy | * |
| Qemu | Ubuntu | hirsute | * |
| Qemu | Ubuntu | impish | * |
| Qemu | Ubuntu | jammy | * |
| Qemu | Ubuntu | kinetic | * |
| Qemu | Ubuntu | lunar | * |
| Qemu | Ubuntu | mantic | * |
| Qemu | Ubuntu | noble | * |
| Qemu | Ubuntu | oracular | * |
| Qemu | Ubuntu | plucky | * |
| Qemu | Ubuntu | questing | * |
| Qemu | Ubuntu | trusty | * |
| Qemu | Ubuntu | trusty/esm | * |
| Qemu | Ubuntu | upstream | * |
| Qemu | Ubuntu | xenial | * |
| Qemu-kvm | Ubuntu | precise/esm | * |
While assertion is good for catching logic errors and reducing the chances of reaching more serious vulnerability conditions, it can still lead to a denial of service. For example, if a server handles multiple simultaneous connections, and an assert() occurs in one single connection that causes all other connections to be dropped, this is a reachable assertion that leads to a denial of service.