Bug 1226535 (CVE-2021-47575)

Summary: VUL-0: CVE-2021-47575: kernel: xen/console: harden hvc_xen against event channel storms
Product: [Novell Products] SUSE Security Incidents Reporter: SMASH SMASH <smash_bz>
Component: IncidentsAssignee: Security Team bot <security-team>
Status: RESOLVED FIXED QA Contact: Security Team bot <security-team>
Severity: Normal    
Priority: P3 - Medium CC: camila.matos, gabriel.bertazi
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://smash.suse.de/issue/411406/
Whiteboard: CVSSv3.1:SUSE:CVE-2021-47575:5.5:(AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Found By: Security Response Team Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description SMASH SMASH 2024-06-19 17:51:10 UTC
In the Linux kernel, the following vulnerability has been resolved:

xen/console: harden hvc_xen against event channel storms

The Xen console driver is still vulnerable for an attack via excessive
number of events sent by the backend. Fix that by using a lateeoi event
channel.

For the normal domU initial console this requires the introduction of
bind_evtchn_to_irq_lateeoi() as there is no xenbus device available
at the time the event channel is bound to the irq.

As the decision whether an interrupt was spurious or not requires to
test for bytes having been read from the backend, move sending the
event into the if statement, as sending an event without having found
any bytes to be read is making no sense at all.

This is part of XSA-391

---
V2:
- slightly adapt spurious irq detection (Jan Beulich)
V3:
- fix spurious irq detection (Jan Beulich)

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-47575
https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2021/CVE-2021-47575.mbox
https://git.kernel.org/stable/c/c7eaa5082bccfc00dfdb500ac6cc86d6f24ca027
https://git.kernel.org/stable/c/728389c21176b2095fa58e858d5ef1d2f2aac429
https://git.kernel.org/stable/c/68b78f976ca47d52c03c41eded207a312e46b934
https://git.kernel.org/stable/c/57e46acb3b48ea4e8efb1e1bea2e89e0c6cc43e2
https://git.kernel.org/stable/c/560e64413b4a6d9bd6630e350d5f2e6a05f6ffe3
https://git.kernel.org/stable/c/8fa3a370cc2af858a9ba662ca4f2bd0917550563
https://git.kernel.org/stable/c/153d1ea3272209fc970116f09051002d14422cde
https://git.kernel.org/stable/c/fe415186b43df0db1f17fa3a46275fd92107fe71
https://www.cve.org/CVERecord?id=CVE-2021-47575