CVE-2025-38248 is a use-after-free vulnerability in the Linux kernel bridge multicast subsystem. Under per-VLAN multicast-snooping configuration transitions, a bridge port can be re-added to a global or per-VLAN multicast router-port list while the corresponding multicast context is disabled. Subsequent deletion of the port or its VLAN membership can leave a stale router-port-list entry referencing freed port context memory. Traversal of the stale list, including while adding another multicast router port, dereferences the freed object. The flaw was introduced by changed multicast-port disablement behavior after commit 4b30ae9adb04. The fix removes a port from the applicable global or per-VLAN router-port list in br_multicast_port_ctx_deinit() during port and VLAN context teardown.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.
Repository contains a single C proof-of-concept (poc.c) plus a minimal README claiming CVE-2025-38248 research. poc.c is a local Linux kernel trigger that: - Creates new user, mount, and network namespaces (unshare(CLONE_NEWUSER|CLONE_NEWNS|CLONE_NEWNET)) and maps the caller to uid/gid 0 inside the namespace via /proc/self/{setgroups,uid_map,gid_map}. - Uses raw rtnetlink (AF_NETLINK, NETLINK_ROUTE) to craft RTM_NEWLINK/RTM_DELLINK messages, emulating a subset of `ip link` operations. It creates a bridge (br1) with vlan_filtering and mcast_snooping enabled, creates a dummy interface (dummy1) enslaved to the bridge, toggles bridge_slave multicast router settings, enables bridge multi boolopt mcast_vlan_snooping, then deletes dummy1. - After deletion, it performs a heap spray by allocating 19 key objects using SYS_add_key("user", description, "data", 4, KEY_SPEC_SESSION_KEYRING) with a description padded to a chosen size (1024 bytes), likely to reclaim/fill freed kernel heap slots. - Finally, it creates a second dummy interface (dummy2) and applies bridge_slave settings again, presumably to re-trigger access to a freed/overwritten object. No network callbacks, C2, or remote endpoints are present; the only fingerprintable targets are local procfs paths and kernel interfaces (rtnetlink, keyrings). The code does not include privilege escalation primitives (no cred overwrite, no ROP, no shell), so it is best characterized as a kernel bug trigger + heap grooming PoC rather than a complete exploit.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
19 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A Linux kernel use-after-free vulnerability in bridge multicast initialization via br_multicast_port_ctx_init.
A Linux kernel use-after-free vulnerability in bridge multicast handling within br_multicast_port_ctx_init.
A Linux kernel use-after-free vulnerability in bridge multicast handling in br_multicast_port_ctx_init.
A Linux kernel use-after-free vulnerability in bridge multicast handling within br_multicast_port_ctx_init.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.