CVE-2024-50276: net: vertexcom: mse102x: Fix possible double free of TX skb
In the Linux kernel, the following vulnerability has been resolved:
net: vertexcom: mse102x: Fix possible double free of TX skb
The scope of the TX skb is wider than just mse102x_tx_frame_spi(),
so in case the TX skb room needs to be expanded, we should free the
the temporary skb instead of the original skb. Otherwise the original
TX skb pointer would be freed again in mse102x_tx_work(), which leads
to crashes:
Internal error: Oops: 0000000096000004 [#2] PREEMPT SMP
CPU: 0 PID: 712 Comm: kworker/0:1 Tainted: G D 6.6.23
Hardware name: chargebyte Charge SOM DC-ONE (DT)
Workqueue: events mse102x_tx_work [mse102x]
pstate: 20400009 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : skb_release_data+0xb8/0x1d8
lr : skb_release_data+0x1ac/0x1d8
sp : ffff8000819a3cc0
x29: ffff8000819a3cc0 x28: ffff0000046daa60 x27: ffff0000057f2dc0
x26: ffff000005386c00 x25: 0000000000000002 x24: 00000000ffffffff
x23: 0000000000000000 x22: 0000000000000001 x21: ffff0000057f2e50
x20: 0000000000000006 x19: 0000000000000000 x18: ffff00003fdacfcc
x17: e69ad452d0c49def x16: 84a005feff870102 x15: 0000000000000000
x14: 000000000000024a x13: 0000000000000002 x12: 0000000000000000
x11: 0000000000000400 x10: 0000000000000930 x9 : ffff00003fd913e8
x8 : fffffc00001bc008
x7 : 0000000000000000 x6 : 0000000000000008
x5 : ffff00003fd91340 x4 : 0000000000000000 x3 : 0000000000000009
x2 : 00000000fffffffe x1 : 0000000000000000 x0 : 0000000000000000
Call trace:
skb_release_data+0xb8/0x1d8
kfree_skb_reason+0x48/0xb0
mse102x_tx_work+0x164/0x35c [mse102x]
process_one_work+0x138/0x260
worker_thread+0x32c/0x438
kthread+0x118/0x11c
ret_from_fork+0x10/0x20
Code: aa1303e0 97fffab6 72001c1f 54000141 (f9400660)
Security readout for executives and security teams
Plain-English summary
A memory-management error in the Linux Vertexcom MSE102x network driver can free transmitted packet memory twice, causing a kernel crash. Business exposure is concentrated in systems using this specific driver and hardware; ordinary Linux installations without it are unlikely to reach the vulnerable path.
Executive priority
Treat confirmed MSE102x deployments as urgent because a kernel crash can interrupt networked operations. Rapidly scope first: systems not using this specialized driver have materially lower practical exposure. Patch confirmed deployments through supported kernel channels and validate critical appliances after rollout.
Technical view
When transmit-buffer space must be expanded, the driver can free the original socket buffer instead of a temporary buffer. The transmit worker later frees the original pointer again, producing a CWE-415 double free and kernel oops. Stable-kernel commits change the cleanup target. The supplied record rates this CVSS 9.8, although its demonstrated consequence is a crash.
Likely exposure
Potentially exposed systems run an affected Linux kernel with the Vertexcom MSE102x driver active and exercise its transmit path. The supplied version data is irregular, so determine exposure from distribution or appliance vendor advisories and fix backports rather than version numbers alone.
Exploitation context
The bundle does not identify CISA KEV listing, active exploitation, or a public exploit. It documents a reproducible kernel crash. The supplied CVSS vector asserts network reachability and full confidentiality, integrity, and availability impact, but the technical description only substantiates crashing; broader impact remains unproven here.
Researcher notes
The fault is in TX socket-buffer ownership during expansion and later worker cleanup. Four stable-kernel fixes are referenced, suggesting branch-specific backports. Do not infer remote code execution or data compromise from the CVSS vector alone; the supplied crash trace establishes availability impact, while exploitability and other impacts are not demonstrated.
Mitigation direction
Install a vendor-supported kernel containing the applicable stable fix commit or backport.
Check appliance and Linux distribution advisories for package-specific fixed versions.
If patching is delayed, avoid or disable the MSE102x driver where operationally safe and vendor-supported.
Prioritize affected network appliances whose unexpected reboot or outage would disrupt critical operations.
Validation and detection
Inventory kernels, loaded modules, and hardware for active Vertexcom MSE102x use.
Compare the running kernel package against vendor advisories and documented backports.
Confirm the applicable stable fix commit exists in the deployed kernel source or package changelog.
Review kernel logs for mse102x_tx_work, skb_release_data, double-free, oops, or unexplained crashes.
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.
cwe · low confidence lookup
CWE-415: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
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.
2CVSS vectors
3Timeline events
2ADP providers
6Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.