CVSS base score: 7.5 (High) vendor CNA · v3.1
Score assigned by the vendor's own CVE Numbering Authority (CNA); CISA's Vulnrichment program adds a score only when the CNA omits one.
Vendor: Linux Product: Linux
In the Linux kernel, the following vulnerability has been resolved: net: stmmac: Prevent NULL deref when RX memory exhausted The CPU receives frames from the MAC through conventional DMA: the CPU allocates buffers for the MAC, then the MAC fills them and returns ownership to the CPU. For each hardware RX queue, the CPU and MAC coordinate through a shared ring array of DMA descriptors: one descriptor per DMA buffer. Each descriptor includes the buffer's physical address and a status flag ("OWN") indicating which side owns the buffer: OWN=0 for CPU, OWN=1 for MAC. The CPU is only allowed to set the flag and the MAC is only allowed to clear it, and both must move through the ring in sequence: thus the ring is used for both "submissions" and "completions." In the stmmac driver, stmmac_rx() bookmarks its position in the ring with the `cur_rx` index. The main receive loop in that function checks for rx_descs[cur_rx].own=0, gives the corresponding buffer to the network stack (NULLing the pointer), and increments `cur_rx` modulo the ring size. After the loop exits, stmmac_rx_refill(), which bookmarks its position with `dirty_rx`, allocates fresh buffers and rearms the descriptors (setting OWN=1). If it fails any allocation, it simply stops early (leaving OWN=0) and will retry where it left off when next called. This means descriptors have a three-stage lifecycle (terms my own): - `empty` (OWN=1, buffer valid) - `full` (OWN=0, buffer valid and populated) - `dirty` (OWN=0, buffer NULL) But because stmmac_rx() only checks OWN, it confuses `full`/`dirty`. In the past (see 'Fixes:'), there was a bug where the loop could cycle `cur_rx` all the way back to the first descriptor it dirtied, resulting in a NULL dereference when mistaken for `full`. The aforementioned commit resolved that *specific* failure by capping the loop's iteration limit at `dma_rx_size - 1`, but this is only a partial fix: if the previous stmmac_rx_refill() didn't complete, then there are leftover `dirty` descriptors that the loop might encounter without needing to cycle fully around. The current code therefore panics (see 'Closes:') when stmmac_rx_refill() is memory-starved long enough for `cur_rx` to catch up to `dirty_rx`. Fix this by explicitly checking, before advancing `cur_rx`, if the next entry is dirty; exit the loop if so. This prevents processing of the final, used descriptor until stmmac_rx_refill() succeeds, but fully prevents the `cur_rx == dirty_rx` ambiguity as the previous bugfix intended: so remove the clamp as well. Since stmmac_rx_zc() is a copy-paste-and-tweak of stmmac_rx() and the code structure is identical, any fix to stmmac_rx() will also need a corresponding fix for stmmac_rx_zc(). Therefore, apply the same check there. In stmmac_rx() (not stmmac_rx_zc()), a related bug remains: after the MAC sets OWN=0 on the final descriptor, it will be unable to send any further DMA-complete IRQs until it's given more `empty` descriptors. Currently, the driver simply *hopes* that the next stmmac_rx_refill() succeeds, risking an indefinite stall of the receive process if not. But this is not a regression, so it can be addressed in a future change.
No mentions found in monitored research blogs or news feeds.
| Date | Advisory | Issuer |
|---|---|---|
| 2026-10-22 | ICSA-26-295-16: Siemens SIMATIC S7-1500 TM MFP | CISA |
Each milestone comes from a different source, so gaps between them are gaps in what those sources publish, not evidence that nothing happened. EPSS history for this CVE holds 3 points from 2026-11-05, tracked daily from 2026-11-05; earlier points are weekly, which dates a spike to within a week. Peak probability 0.5% on 2026-11-05.
Check whether a specific version is affected →
What each source publishes about which product versions carry this vulnerability, kept as written rather than merged. Absence here means no source has published applicability data, not that nothing is affected.
Blind spot. No public detection — verify by version/patch. Nothing in the monitored scanner, IDS, SIEM or offensive-tool collections references this CVE, so exposure has to be established from asset inventory and patch level rather than from a signature.
Coverage across public collections only: Nuclei and OpenVAS NVT (scan);
Snort and Suricata ET Open (network); Sigma and YARA (host/SIEM);
Metasploit, Exploit-DB, public GitHub repositories and NVD exploit references (exploit). Absence
here means nothing public was found, not that detection is impossible.
GitHub PoC repositories are collected automatically by
PoC-in-GitHub (CC0) and filtered to repositories that are
still online, contain code, and are starred or at least two weeks old. They are
still not vetted: some are fakes and some are malware. Treat
them as evidence that code was published, not as code to run.
NVD exploit references are links NVD's analysts tag as exploits; they confirm
an exploit was referenced but carry no date. This product uses data from the
NVD but is not endorsed or certified by the NVD.
OpenVAS coverage derives from the Greenbone Community Feed, made available
under the Open Database License (ODbL) v1.0;
its individual Vulnerability Tests are licensed
GNU GPL v2.
No exploit-tool sightings recorded for this CVE.
Metasploit is dated by the first commit of the module file, Exploit-DB by its publication date, and GitHub repositories by their creation date. GitHub PoC repositories are filtered (still online, contain code, starred or at least two weeks old) but not vetted: some are fakes and some are malware, so they show that code was published, not that it works or is safe to run. Evidence tiers are explained on the About page.
Where the distribution has shipped a fix, and in which version. Green means the release has resolved it, amber that it is still open. Data from the Debian Security Tracker, used under Debian's MIT / GPLv2+ terms. Debian is upstream of several other distributions, so a fix here often precedes theirs.
No CISA Vulnrichment record for this CVE.
| If the asset is | Remediate within | Table 1 row |
|---|---|---|
| Publicly exposed | 14 days | 7 of 16 |
| Not publicly exposed | Fix on system upgrade | 15 of 16 |
BOD 26-04 replaced the single KEV deadline of BOD 22-01 with four inputs: whether the asset is publicly exposed, KEV status, whether exploitation is automatable, and technical impact. Exposure belongs to each agency's asset, not to the CVE, so both outcomes are shown. Automatable and technical impact come from the CISA assessment above. Days are calendar days; for KEV entries the clock starts on the date it was added, and otherwise when the agency identifies the vulnerability on an asset. Assumed: Automatable not assessed — assumed no; Technical impact not assessed — assumed total, following CISA's defaults for missing data. Agencies make the final exposure call asset by asset, and may set shorter timelines.
CVE.org record → NVD entry → FortiGuard Labs → Rapid7 AttackerKB →