VYPR
Unrated severityNVD Advisory· Published Oct 22, 2025· Updated Apr 15, 2026

CVE-2022-50564

CVE-2022-50564

Description

In the Linux kernel, the following vulnerability has been resolved:

s390/netiucv: Fix return type of netiucv_tx()

With clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG), indirect call targets are validated against the expected function pointer prototype to make sure the call target is valid to help mitigate ROP attacks. If they are not identical, there is a failure at run time, which manifests as either a kernel panic or thread getting killed. A proposed warning in clang aims to catch these at compile time, which reveals:

drivers/s390/net/netiucv.c:1854:21: error: incompatible function pointer types initializing 'netdev_tx_t (*)(struct sk_buff *, struct net_device *)' (aka 'enum netdev_tx (*)(struct sk_buff *, struct net_device *)') with an expression of type 'int (struct sk_buff *, struct net_device *)' [-Werror,-Wincompatible-function-pointer-types-strict] .ndo_start_xmit = netiucv_tx, ^~~~~~~~~~

->ndo_start_xmit() in 'struct net_device_ops' expects a return type of 'netdev_tx_t', not 'int'. Adjust the return type of netiucv_tx() to match the prototype's to resolve the warning and potential CFI failure, should s390 select ARCH_SUPPORTS_CFI_CLANG in the future.

Additionally, while in the area, remove a comment block that is no longer relevant.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

A prototype mismatch in the s390/netiucv driver's netiucv_tx() function fixed to prevent kCFI panic/ROP bypass.

Vulnerability

Overview

CVE-2022-50564 is a mismatch between the declared return type (int) of the s390/netiucv driver's netiucv_tx() function and the expected return type (netdev_tx_t) as defined by the ndo_start_xmit callback in struct net_device_ops. This discrepancy was flagged by clang's Control Flow Integrity (kCFI) enforcement under CONFIG_CFI_CLANG, which validates indirect call targets against the expected function pointer prototype during kernel runtime [1].

Attack

Surface and Exploitation

No direct user input or network exposure is required; the vulnerability lies purely in the driver's implementation. An attacker could only potentially trigger the issue if they are able to load or interact with the netiucv device driver (e.g., by attaching an IUCV network device). However, the bug manifests as a kernel panic or thread termination when an attempted indirect call to netiucv_tx() fails the CFI check. This does not require special authentication beyond ordinary access to utilize the IUCV device [1].

Impact

If the s390 architecture were to enable ARCH_SUPPORTS_CFI_CLANG in the future, this mismatched function prototype would cause a runtime CFI failure, resulting in either a kernel panic or the killing of the affected thread. Such a failure could be leveraged by an attacker to crash the system (denial of service) or potentially bypass kCFI protections designed to mitigate ROP attacks [1]. In the current kernel version where CFI is not yet enabled on s390, the warning serves as a quality-of-code issue with no exploitable runtime impact.

Mitigation

The fix adjusts the return type of netiucv_tx() from int to netdev_tx_t and removes an obsolete comment block. The patch has been applied to the Linux kernel stable trees via commit dfbf0122ea1b and others [3]. Users are advised to update to a kernel version containing this patch to prevent future CFI failures on s390.

AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

2
  • Linux/Kernelinferred2 versions
    (expand)+ 1 more
    • (no CPE)
    • (no CPE)

Patches

9

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

9

News mentions

0

No linked articles in our index yet.