Skip to main content

Linux Kernel qeth CVE-2024-36928

HIGH
NULL Pointer Dereference (CWE-476)
2024-05-30 416baaa9-dc9f-4396-8d5f-8c081fb06d67
7.8
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Gain privileged local access to s390 LPAR
  2. Delivery
    Configure IQD Layer3 qeth device
  3. Exploit
    Bring network interface UP
  4. Install
    Write hsuid sysfs attribute while interface is UP
  5. C2
    qeth_free_qdio_queues clears napi.poll pointer
  6. Execute
    Network softirq calls __napi_poll via NULL pointer
  7. Impact
    Kernel panic crashes LPAR

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of the following: (1) IBM s390/zSeries mainframe hardware running Linux - this vulnerability does not exist on any other architecture; (2) the qeth_l3 kernel module loaded with at least one IQD (HiperSockets) Layer3 network device configured (Layer2 qeth devices are not affected by this specific code path); (3) the network interface corresponding to that IQD device must already be in the UP state at the time of the trigger; (4) local access with privileges sufficient to write to the qeth device sysfs attribute for hsuid (typically root on standard Linux configurations). Exploitation is limited to denial of service (kernel panic and LPAR crash); no path to code execution or data exfiltration is established. The CVSS PR:L assignment in the NVD entry may understate the privilege level - sysfs device attribute writes typically require root, which limits the realistic attacker population further.

Impact

The NVD-assigned CVSS 7.8 (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) overstates the realistic impact. C:H and I:H reflect theoretical full kernel compromise from a kernel panic, but the actual exploitable outcome is a system crash (A:H); no code execution or data exfiltration path is established by this vulnerability. Independently assessed, PR should be H (writing sysfs device attributes requires root-level access on standard Linux configurations), which would reduce the score to approximately 4.4. EPSS at 0.22% (12th percentile) is consistent with the narrow attack surface: IBM s390 mainframe hardware only, IQD Layer3 configuration required, local privileged access needed, and a specific sequencing condition (hsuid write while interface UP). The vulnerability is not in CISA KEV and no POC has been identified, confirming it has not been weaponized. Priority is low for all but IBM mainframe operators running IQD Layer3 HiperSockets networks.

Exploit ScenarioDerived

An administrator or privileged local user on an IBM s390 LPAR with an IQD Layer3 HiperSockets network device runs 'ip link set dev eth0 up' and then writes a new value to the hsuid sysfs attribute while the interface remains UP. The qeth driver's offline/online cycle clears the napi.poll function pointer via qeth_free_qdio_queues() without restoring it, because dev_open() is no longer called. The next network packet triggers net_rx_action() in softirq context, which calls __napi_poll() through the NULL pointer, generating an s390 illegal operation exception at address 0x2 and crashing the entire LPAR with 'Kernel panic - not syncing: Fatal exception in interrupt'. No public exploit code exists for this scenario.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Aug 04, 2026

Kernel panic via NULL pointer dereference in the s390 qeth IQD Layer3 network driver affects IBM mainframe Linux systems running kernel versions up to 6.9-rc5. Setting the hsuid attribute on an IQD Layer3 device while its network interface is UP causes qeth_free_qdio_queues() to clear napi.poll function pointers that are never restored, because commit 1cfef80d4c2b removed the dev_close()/dev_open() calls that previously handled re-initialization. When subsequent network softirq processing invokes __napi_poll() against the NULL pointer, the s390 CPU triggers an illegal operation exception and fatal kernel panic. No public exploit code exists and EPSS at 0.22% (12th percentile) reflects the highly specific trigger conditions and niche hardware footprint; this vulnerability is not in CISA KEV.

Earlier versions of this analysis (1)
v1 Aug 04, 2026 - 12:06 cvss changed CVSS 7.8

Kernel panic via NULL pointer dereference in the s390/qeth IQD Layer3 driver allows a local operator to crash an IBM z-Series system by setting the hsuid attribute while the associated HiperSockets network interface is UP. The defect was introduced when commit 1cfef80d4c2b removed the dev_close()/dev_open() cycle from the offline/online transition, leaving napi.poll function pointers zeroed and unrestored after qeth_free_qdio_queues() clears them. No public exploit exists and EPSS is 0.22% (12th percentile), but patches have been applied across five kernel stable branches, confirming the defect is reproducible and fix-worthy.

RemediationAI

Apply the upstream stable kernel patches confirmed by NVD references: https://git.kernel.org/stable/c/10cb803aff3b11fe0bd5f274fc1c231a43e88df6, https://git.kernel.org/stable/c/8792b557eb50b986f2496156d486d0c7c85a1524, https://git.kernel.org/stable/c/8a2e4d37afb8500b276e5ee903dee06f50ab0494, https://git.kernel.org/stable/c/e28dd1e1bf3ebb52cdb877fb359e8978a51576e3, and https://git.kernel.org/stable/c/eae0aec245712c52a3ce9c05575b541a9eef5282. Exact fixed distribution kernel versions (RHEL, SUSE, Ubuntu mainframe) are not independently confirmed from available data - monitor vendor errata channels for s390x kernel updates. As an immediate operational workaround, always take the network interface DOWN (ip link set dev <if> down) before writing the hsuid attribute to any IQD Layer3 qeth device, then bring it UP again afterward; this ensures qeth_open() re-initializes the napi.poll pointers correctly. This workaround has no functional trade-offs for planned maintenance windows but does introduce a brief network interruption.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is the qeth driver (qeth_l3 kernel module) for IBM s390/zSeries mainframes, which manages HiperSockets (IQD - Internal Queued Direct I/O) network adapters. Linux's NAPI (New API) subsystem uses per-queue poll function pointers stored in card->qdio.out_qs[i].napi.poll to batch network receive processing and reduce interrupt overhead. These pointers are initialized in qeth_open(). Since commit 1cfef80d4c2b ('s390/qeth: Don't call dev_close/dev_open (DOWN/UP)'), the qeth_set_offline()/qeth_set_online() path no longer calls dev_close()/dev_open(), so qeth_free_qdio_queues() can zero out the napi.poll pointer while the interface remains UP. CWE-476 (NULL Pointer Dereference) is the root cause: net_rx_action() invokes __napi_poll() which calls through the now-NULL function pointer, executing address 0x0 on s390 and producing an 'illegal operation' trap that escalates to kernel panic. CPE cpe:2.3:o:linux:linux_kernel covers all affected stable branches plus 6.9-rc1 through 6.9-rc5 as confirmed by NVD.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 4.4 MEDIUM

Writing sysfs device attributes requires root privileges (PR:H); realistic impact is kernel panic only (A:H), with no confidentiality or integrity compromise achievable.

3.1 AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Updated
Aug 04, 2026 - 12:13 vuln.today
v2 - CVSS changed
Analysis Updated
Aug 04, 2026 - 12:06 vuln.today
v1 - CVSS changed
Severity Changed
Aug 04, 2026 - 11:23 NVD
MEDIUM HIGH
CVSS changed
Aug 04, 2026 - 11:23 NVD
4.4 (MEDIUM) 7.8 (HIGH)
CVE Published
May 30, 2024 - 16:15 cve.org
MEDIUM 4.4

DescriptionCVE.org

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

s390/qeth: Fix kernel panic after setting hsuid

Symptom: When the hsuid attribute is set for the first time on an IQD Layer3 device while the corresponding network interface is already UP, the kernel will try to execute a napi function pointer that is NULL.

Example: --------------------------------------------------------------------------- [ 2057.572696] illegal operation: 0001 ilc:1 [#1] SMP [ 2057.572702] Modules linked in: af_iucv qeth_l3 zfcp scsi_transport_fc sunrpc nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nf_tables_set nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nf_tables libcrc32c nfnetlink ghash_s390 prng xts aes_s390 des_s390 de s_generic sha3_512_s390 sha3_256_s390 sha512_s390 vfio_ccw vfio_mdev mdev vfio_iommu_type1 eadm_sch vfio ext4 mbcache jbd2 qeth_l2 bridge stp llc dasd_eckd_mod qeth dasd_mod qdio ccwgroup pkey zcrypt [ 2057.572739] CPU: 6 PID: 60182 Comm: stress_client Kdump: loaded Not tainted 4.18.0-541.el8.s390x #1 [ 2057.572742] Hardware name: IBM 3931 A01 704 (LPAR) [ 2057.572744] Krnl PSW : 0704f00180000000 0000000000000002 (0x2) [ 2057.572748] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:3 PM:0 RI:0 EA:3 [ 2057.572751] Krnl GPRS: 0000000000000004 0000000000000000 00000000a3b008d8 0000000000000000 [ 2057.572754] 00000000a3b008d8 cb923a29c779abc5 0000000000000000 00000000814cfd80 [ 2057.572756] 000000000000012c 0000000000000000 00000000a3b008d8 00000000a3b008d8 [ 2057.572758] 00000000bab6d500 00000000814cfd80 0000000091317e46 00000000814cfc68 [ 2057.572762] Krnl Code:#0000000000000000: 0000 illegal >0000000000000002: 0000 illegal 0000000000000004: 0000 illegal 0000000000000006: 0000 illegal 0000000000000008: 0000 illegal 000000000000000a: 0000 illegal 000000000000000c: 0000 illegal 000000000000000e: 0000 illegal [ 2057.572800] Call Trace: [ 2057.572801] ([<00000000ec639700>] 0xec639700) [ 2057.572803] [<00000000913183e2>] net_rx_action+0x2ba/0x398 [ 2057.572809] [<0000000091515f76>] __do_softirq+0x11e/0x3a0 [ 2057.572813] [<0000000090ce160c>] do_softirq_own_stack+0x3c/0x58 [ 2057.572817] ([<0000000090d2cbd6>] do_softirq.part.1+0x56/0x60) [ 2057.572822] [<0000000090d2cc60>] __local_bh_enable_ip+0x80/0x98 [ 2057.572825] [<0000000091314706>] __dev_queue_xmit+0x2be/0xd70 [ 2057.572827] [<000003ff803dd6d6>] afiucv_hs_send+0x24e/0x300 [af_iucv] [ 2057.572830] [<000003ff803dd88a>] iucv_send_ctrl+0x102/0x138 [af_iucv] [ 2057.572833] [<000003ff803de72a>] iucv_sock_connect+0x37a/0x468 [af_iucv] [ 2057.572835] [<00000000912e7e90>] __sys_connect+0xa0/0xd8 [ 2057.572839] [<00000000912e9580>] sys_socketcall+0x228/0x348 [ 2057.572841] [<0000000091514e1a>] system_call+0x2a6/0x2c8 [ 2057.572843] Last Breaking-Event-Address: [ 2057.572844] [<0000000091317e44>] __napi_poll+0x4c/0x1d8 [ 2057.572846] [ 2057.572847] Kernel panic - not syncing: Fatal exception in interrupt -------------------------------------------------------------------------------------------

Analysis: There is one napi structure per out_q: card->qdio.out_qs[i].napi The napi.poll functions are set during qeth_open().

Since commit 1cfef80d4c2b ("s390/qeth: Don't call dev_close/dev_open (DOWN/UP)") qeth_set_offline()/qeth_set_online() no longer call dev_close()/ dev_open(). So if qeth_free_qdio_queues() cleared card->qdio.out_qs[i].napi.poll while the network interface was UP and the card was offline, they are not set again.

Reproduction: chzdev -e $devno layer2=0 ip link set dev $network_interface up echo 0 > /sys/bus/ccw ---truncated---

Executive ViewAI

Why It Matters

A critical kernel defect in IBM mainframe Linux systems (s390 qeth network driver, kernels up to 6.9-rc5) causes complete system panic during routine network configuration changes. Organizations using mainframe Linux deployments face unplanned downtime for mission-critical workloads and should prioritize immediate patching, despite this vulnerability's niche hardware footprint.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Rare
IBM s390 mainframe-only driver; tiny fraction of global Linux deployments
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)CVE.org

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc6:*:*:*:*:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy