LiveActive security incident?Get immediate response
CVE Record

CVE-2022-50647: RISC-V: Make port I/O string accessors actually work

In the Linux kernel, the following vulnerability has been resolved: RISC-V: Make port I/O string accessors actually work Fix port I/O string accessors such as `insb', `outsb', etc. which use the physical PCI port I/O address rather than the corresponding memory mapping to get at the requested location, which in turn breaks at least accesses made by our parport driver to a PCIe parallel port such as: PCI parallel port detected: 1415:c118, I/O at 0x1000(0x1008), IRQ 20 parport0: PC-style at 0x1000 (0x1008), irq 20, using FIFO [PCSPP,TRISTATE,COMPAT,EPP,ECP] causing a memory access fault: Unable to handle kernel access to user memory without uaccess routines at virtual address 0000000000001008 Oops [#1] Modules linked in: CPU: 1 PID: 350 Comm: cat Not tainted 6.0.0-rc2-00283-g10d4879f9ef0-dirty #23 Hardware name: SiFive HiFive Unmatched A00 (DT) epc : parport_pc_fifo_write_block_pio+0x266/0x416 ra : parport_pc_fifo_write_block_pio+0xb4/0x416 epc : ffffffff80542c3e ra : ffffffff80542a8c sp : ffffffd88899fc60 gp : ffffffff80fa2700 tp : ffffffd882b1e900 t0 : ffffffd883d0b000 t1 : ffffffffff000002 t2 : 4646393043330a38 s0 : ffffffd88899fcf0 s1 : 0000000000001000 a0 : 0000000000000010 a1 : 0000000000000000 a2 : ffffffd883d0a010 a3 : 0000000000000023 a4 : 00000000ffff8fbb a5 : ffffffd883d0a001 a6 : 0000000100000000 a7 : ffffffc800000000 s2 : ffffffffff000002 s3 : ffffffff80d28880 s4 : ffffffff80fa1f50 s5 : 0000000000001008 s6 : 0000000000000008 s7 : ffffffd883d0a000 s8 : 0004000000000000 s9 : ffffffff80dc1d80 s10: ffffffd8807e4000 s11: 0000000000000000 t3 : 00000000000000ff t4 : 393044410a303930 t5 : 0000000000001000 t6 : 0000000000040000 status: 0000000200000120 badaddr: 0000000000001008 cause: 000000000000000f [<ffffffff80543212>] parport_pc_compat_write_block_pio+0xfe/0x200 [<ffffffff8053bbc0>] parport_write+0x46/0xf8 [<ffffffff8050530e>] lp_write+0x158/0x2d2 [<ffffffff80185716>] vfs_write+0x8e/0x2c2 [<ffffffff80185a74>] ksys_write+0x52/0xc2 [<ffffffff80185af2>] sys_write+0xe/0x16 [<ffffffff80003770>] ret_from_syscall+0x0/0x2 ---[ end trace 0000000000000000 ]--- For simplicity address the problem by adding PCI_IOBASE to the physical address requested in the respective wrapper macros only, observing that the raw accessors such as `__insb', `__outsb', etc. are not supposed to be used other than by said macros. Remove the cast to `long' that is no longer needed on `addr' now that it is used as an offset from PCI_IOBASE and add parentheses around `addr' needed for predictable evaluation in macro expansion. No need to make said adjustments in separate changes given that current code is gravely broken and does not ever work.

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

This is a Linux kernel bug affecting RISC-V port I/O string accessors. On affected systems, certain PCI port I/O operations can use the wrong address and trigger a kernel memory access fault. The example involves a PCIe parallel port driver. Business impact appears mainly availability-related, but public scoring is not provided.

Executive priority

Treat as a targeted availability risk for RISC-V Linux deployments, not a broad enterprise emergency. Prioritize patching where RISC-V systems control production, lab, embedded, or hardware-interface workloads using PCI I/O devices.

Technical view

The RISC-V Linux port I/O string macros such as insb and outsb used physical PCI port I/O addresses instead of the PCI_IOBASE memory mapping. The fix adds PCI_IOBASE in wrapper macros. The provided trace shows a kernel Oops during parport PCIe parallel port access. No CVSS, CWE, or exploit details are provided.

Likely exposure

Most relevant to RISC-V Linux systems using affected kernel branches and PCI port I/O devices or drivers, such as parport with PCIe parallel ports. Exposure should be validated against the running kernel and vendor backports, not only upstream version numbers.

Exploitation context

The source describes a reproducible kernel fault during legitimate device access. It does not describe privilege escalation, remote exploitation, or data exposure. CISA KEV is false, and the provided sources do not report active exploitation.

Researcher notes

Evidence is limited to the CVE record and Linux stable commits. The vulnerability is a correctness flaw in RISC-V I/O accessor address translation with potential kernel fault impact. No public CVSS, CWE, exploit status, or vendor-specific package matrix is included in the provided sources.

Mitigation direction

  • Upgrade to a vendor kernel containing the referenced upstream stable fix.
  • Check distribution advisories for RISC-V kernel backports and affected package versions.
  • Prioritize systems using PCI port I/O devices on RISC-V hardware.
  • If upgrades are delayed, reduce use of affected PCI port I/O drivers where operationally feasible.

Validation and detection

  • Inventory RISC-V Linux hosts and record running kernel builds.
  • Identify systems using PCI port I/O hardware or parport-related drivers.
  • Compare installed kernels with vendor advisories and referenced stable commits.
  • Review logs for kernel Oops or access faults during PCI port I/O activity.
Prepared
Confidence
medium
Sources
8

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2022-50647 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
0Timeline events
0ADP providers
7Source links

CVSS and timeline data

No CVSS vectors or timeline events were available in the normalized CVE source material.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinuxfab957c11efe2f405e08b9f0d080524bc2631428, fab957c11efe2f405e08b9f0d080524bc2631428, fab957c11efe2f405e08b9f0d080524bc2631428, fab957c11efe2f405e08b9f0d080524bc2631428, fab957c11efe2f405e08b9f0d080524bc2631428, fab957c11efe2f405e08b9f0d080524bc2631428unaffected
LinuxLinux4.15, 0, 5.4.220, 5.10.150, 5.15.75, 5.19.17, 6.0.3, 6.1affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.