CVE-2021-47229

PCI: aardvark: Fix kernel panic during PIO transfer

MEDIUM
5.5
CVSS Score
Published: May 21, 2024 at 02:19 PM UTC
Updated: June 17, 2026 at 04:16 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: PCI: aardvark: Fix kernel panic during PIO transfer Trying to start a new PIO transfer by writing value 0 in PIO_START register when previous transfer has not yet completed (which is indicated by value 1 in PIO_START) causes an External Abort on CPU, which results in kernel panic: SError Interrupt on CPU0, code 0xbf000002 -- SError Kernel panic - not syncing: Asynchronous SError Interrupt To prevent kernel panic, it is required to reject a new PIO transfer when previous one has not finished yet. If previous PIO transfer is not finished yet, the kernel may issue a new PIO request only if the previous PIO transfer timed out. In the past the root cause of this issue was incorrectly identified (as it often happens during link retraining or after link down event) and special hack was implemented in Trusted Firmware to catch all SError events in EL3, to ignore errors with code 0xbf000002 and not forwarding any other errors to kernel and instead throw panic from EL3 Trusted Firmware handler. Links to discussion and patches about this issue: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/commit/?id=3c7dcdac5c50 https://lore.kernel.org/linux-pci/[email protected]/ https://lore.kernel.org/linux-pci/[email protected]/ https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/1541 But the real cause was the fact that during link retraining or after link down event the PIO transfer may take longer time, up to the 1.44s until it times out. This increased probability that a new PIO transfer would be issued by kernel while previous one has not finished yet. After applying this change into the kernel, it is possible to revert the mentioned TF-A hack and SError events do not have to be caught in TF-A EL3.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v < 4.14.2404.15 ≤ v < 4.19.1984.20 ≤ v < 5.4.1284.8 ≤ v < 4.14.2404.8 ≤ v < 4.19.1984.8 ≤ v < 5.10.464.8 ≤ v < 5.12.134.8 ≤ v < 5.134.8 ≤ v < 5.4.1285.11 ≤ v < 5.12.135.5 ≤ v < 5.10.465.13 rc15.13 rc25.13 rc35.13 rc45.13 rc55.13 rc68c39d710363c14ecb09219332869707395d1d495
Vendor states this is fixed in 1a1dbc4473974867fe8c5f195c17b341c8e82867 (fixed)
Vendor states this is fixed in 3d213a4ddf49a860be6e795482c17f87e0c82b2a (fixed)
Vendor states this is fixed in 400e6b1860c8be61388d0b77814c53260f96e17a (fixed)
Vendor states this is fixed in 4c90f90a91d75c3c73dd633827c90e8746d9f54d (fixed)
Vendor states this is fixed in b00a9aaa4be20ad6e3311fb78a485eae0899e89a (fixed)
Vendor states this is fixed in f18139966d072dab8e4398c95ce955a9742e04f7 (fixed)
Vendor states this is fixed in 4.14.240 (unaffected)
Vendor states this is fixed in 4.19.198 (unaffected)
Vendor states this is fixed in 4.8 (unaffected)
Vendor states this is fixed in 5.10.46 (unaffected)
Vendor states this is fixed in 5.12.13 (unaffected)
Vendor states this is fixed in 5.13 (unaffected)
Vendor states this is fixed in 5.4.128 (unaffected)

References (6)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/1a1dbc4473974867fe8c5f195c17b341c8e82867
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/3d213a4ddf49a860be6e795482c17f87e0c82b2a
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/400e6b1860c8be61388d0b77814c53260f96e17a
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/4c90f90a91d75c3c73dd633827c90e8746d9f54d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/b00a9aaa4be20ad6e3311fb78a485eae0899e89a
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f18139966d072dab8e4398c95ce955a9742e04f7

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
NVD-CWE-noinfo

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card