[PATCH 00/27] CCID smartcard reader fixes
Marc-André Lureau <[email protected]> Wed, 05 Aug 2026 15:50:50 +0400
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
Hi, While tackling some CVEs issues, I also found several correctness and robustness improvements/fixes. The series: - has 3 CVE fixes (OOB/assert) - fixes xHCI compatibility - some endianness fixes - blocks & fixes migration - better spec compliancy Tested on Linux with pcscd and Windows with OpenSC. Signed-off-by: Marc-André Lureau <[email protected]> --- Marc-André Lureau (27): hw/usb/dev-smartcard-reader: validate interrupt transfer length hw/usb/dev-smartcard-reader: fix OOB read from pending bulk-in ring hw/usb/dev-smartcard-reader: fix assert on pending answers overflow hw/usb/dev-smartcard-reader: decode bulk-out length as little-endian hw/usb/dev-smartcard-reader: fix dwMaxCCIDMessageLength descriptor hw/usb/dev-smartcard-reader: fix OOB read in atr_get_protocol_num() hw/usb/dev-smartcard-reader: block migration with pending queues hw/usb/dev-smartcard-reader: drop needless state fields hw/usb/dev-smartcard-reader: validate migrated fields in post_load hw/usb/dev-smartcard-reader: reset all I/O state on device reset hw/usb/dev-smartcard-reader: apply backpressure to bulk-out hw/usb/dev-smartcard-reader: fix RDR_to_PC_Parameters dwLength hw/usb/dev-smartcard-reader: reject oversized responses safely hw/usb/dev-smartcard-reader: release short bulk-in responses with xHCI hw/usb/dev-smartcard-reader: drop current_bulk_in pointer hw/usb/dev-smartcard-reader: derive queue counts from start/end indices hw/usb/dev-smartcard-reader: fix pending queue migration hw/usb/dev-smartcard-reader: handle Secure, Escape and SetDataRate commands hw/usb/dev-smartcard-reader: reject commands for invalid slots hw/usb/dev-smartcard-reader: zero bChainParameter in DataBlock responses hw/usb/dev-smartcard-reader: report error on XfrBlock with no card hw/usb/dev-smartcard-reader: stop advertising PIN support hw/usb/dev-smartcard-reader: validate per-command dwLength hw/usb/dev-smartcard-reader: use usb_packet_size() accessor hw/usb/dev-smartcard-reader: advertise T=1 protocol support hw/usb/dev-smartcard-reader: correct CCID_IccPowerOff hw/usb/ccid-card-emulated: free libcacard context hw/core/machine.c | 4 + hw/usb/ccid-card-emulated.c | 2 + hw/usb/dev-smartcard-reader.c | 523 ++++++++++++++++++++++++++++++++++-------- 3 files changed, 428 insertions(+), 101 deletions(-) --- base-commit: 3e3ccab106f879b1512f8e0d51a827dd4de30e22 change-id: 20260805-smartcard-fixes-1df707e447ab Best regards, -- Marc-André Lureau <[email protected]>