CVE-2025-38248

NVD 0.07.8
EchelonGraph scoreMEDIUM confidence

Score 7.8 from GitHub Security Advisory (severity: HIGH) published 2025-07-09. NVD baseline CVSS 7.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
0.0
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • No confirmed exploitation signals yet
CISA-KEV: Not listedEPSS: 0%CVSS: Exploit: NoneExposed: 0

A fix is available — apply it.

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

bridge: mcast: Fix use-after-free during router port configuration

The bridge maintains a global list of ports behind which a multicast router resides. The list is consulted during forwarding to ensure multicast packets are forwarded to these ports even if the ports are not member in the matching MDB entry.

When per-VLAN multicast snooping is enabled, the per-port multicast context is disabled on each port and the port is removed from the global router port list:

# ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 1 # ip link add name dummy1 up master br1 type dummy # ip link set dev dummy1 type bridge_slave mcast_router 2 $ bridge -d mdb show | grep router router ports on br1: dummy1 # ip link set dev br1 type bridge mcast_vlan_snooping 1 $ bridge -d mdb show | grep router

However, the port can be re-added to the global list even when per-VLAN multicast snooping is enabled:

# ip link set dev dummy1 type bridge_slave mcast_router 0 # ip link set dev dummy1 type bridge_slave mcast_router 2 $ bridge -d mdb show | grep router router ports on br1: dummy1

Since commit 4b30ae9adb04 ("net: bridge: mcast: re-implement br_multicast_{enable, disable}_port functions"), when per-VLAN multicast snooping is enabled, multicast disablement on a port will disable the per-{port, VLAN} multicast contexts and not the per-port one. As a result, a port will remain in the global router port list even after it is deleted. This will lead to a use-after-free [1] when the list is traversed (when adding a new port to the list, for example):

# ip link del dev dummy1 # ip link add name dummy2 up master br1 type dummy # ip link set dev dummy2 type bridge_slave mcast_router 2

Similarly, stale entries can also be found in the per-VLAN router port list. When per-VLAN multicast snooping is disabled, the per-{port, VLAN} contexts are disabled on each port and the port is removed from the per-VLAN router port list:

# ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 1 mcast_vlan_snooping 1 # ip link add name dummy1 up master br1 type dummy # bridge vlan add vid 2 dev dummy1 # bridge vlan global set vid 2 dev br1 mcast_snooping 1 # bridge vlan set vid 2 dev dummy1 mcast_router 2 $ bridge vlan global show dev br1 vid 2 | grep router router ports: dummy1 # ip link set dev br1 type bridge mcast_vlan_snooping 0 $ bridge vlan global show dev br1 vid 2 | grep router

However, the port can be re-added to the per-VLAN list even when per-VLAN multicast snooping is disabled:

# bridge vlan set vid 2 dev dummy1 mcast_router 0 # bridge vlan set vid 2 dev dummy1 mcast_router 2 $ bridge vlan global show dev br1 vid 2 | grep router router ports: dummy1

When the VLAN is deleted from the port, the per-{port, VLAN} multicast context will not be disabled since multicast snooping is not enabled on the VLAN. As a result, the port will remain in the per-VLAN router port list even after it is no longer member in the VLAN. This will lead to a use-after-free [2] when the list is traversed (when adding a new port to the list, for example):

# ip link add name dummy2 up master br1 type dummy # bridge vlan add vid 2 dev dummy2 # bridge vlan del vid 2 dev dummy1 # bridge vlan set vid 2 dev dummy2 mcast_router 2

Fix these issues by removing the port from the relevant (global or per-VLAN) router port list in br_multicast_port_ctx_deinit(). The function is invoked during port deletion with the per-port multicast context and during VLAN deletion with the per-{port, VLAN} multicast context.

Note that deleting the multicast router timer is not enough as it only takes care of the temporary multicast router states (1 or 3) and not the permanent one (2).

[1] BUG: KASAN: slab-out-of-bounds in br_multicast_add_router.part.0+0x3f1/0x560 Write of size 8 at addr ffff888004a67328 by task ip/384 [...] Call Trace: dump_stack ---truncated---

CVSS v3
EG Score
7.8(medium)
EPSS
16.2%
KEV
Not listed

Published

July 9, 2025

Last Modified

June 11, 2026

Patch Availability(30)

Vendor / EcosystemFixed in / PatchReleasedSource
ubuntulinux-virtual-hwe-22.04-edge (6.8.0-100.100~22.04.1) @ jammy2026-05-30ubuntu
ubuntulinux-tools-gcp-fips-5.15 (5.15.0.1100.90) @ jammy2026-05-30ubuntu
ubuntulinux-tools-fips-6.8 (6.8.0-100.100+fips1) @ noble2026-05-30ubuntu
ubuntulinux-tools-gcp-fips-6.8 (6.8.0-1047.50+fips1) @ noble2026-05-30ubuntu
ubuntulinux-tools-oracle-lts-22.04 (5.15.0.1097.93) @ jammy2026-05-30ubuntu
ubuntulinux-tools-realtime-6.8.1 (6.8.1-1041.42) @ noble2026-05-30ubuntu
ubuntulinux-tools-nvidia-tegra-rt-5.15 (5.15.0.1052.52) @ jammy2026-05-30ubuntu
ubuntulinux-tools-aws-edge (5.15.0.1100.107~20.04.1) @ focal2026-05-30ubuntu
ubuntulinux-tools-realtime-5.15 (5.15.0.1099.103) @ jammy2026-05-30ubuntu
ubuntulinux-tools-nvidia-tegra-igx-rt-5.15 (5.15.0.1041.43) @ jammy2026-05-30ubuntu
ubuntulinux-tools-oracle-lts-24.04 (6.8.0-1043.44) @ noble2026-05-30ubuntu
ubuntulinux-tools-nvidia-lowlatency-5.15 (5.15.0.1095.95) @ jammy2026-05-30ubuntu
ubuntulinux-xilinx-zynqmp (6.8.0.1023.24) @ noble2026-05-30ubuntu
ubuntulinux-tools-gke-64k-6.8 (6.8.0-1043.48) @ noble2026-05-30ubuntu
ubuntulinux-tools-ibm-lts-24.04 (6.8.0-1044.44) @ noble2026-05-30ubuntu
ubuntulinux-tools-intel-iotg-5.15 (5.15.0.1095.95) @ jammy2026-05-30ubuntu
ubuntulinux-tools-nvidia-lowlatency-64k-6.8 (6.8.0-1046.49.1) @ noble2026-05-30ubuntu
ubuntulinux-tools-lowlatency-hwe-20.04-edge (6.8.0-100.100.1) @ noble2026-05-30ubuntu
ubuntulinux-xilinx-zynqmp-tools-5.15.0-1064 (5.15.0-1064.68) @ jammy2026-05-30ubuntu
redhatkernel-0:5.14.0-284.166.1.el9_22026-04-22redhat
redhatkernel-rt-0:5.14.0-284.166.1.rt14.451.el9_22026-04-22redhat
redhatkernel-0:5.14.0-70.173.1.el9_02026-04-08redhat
redhatkernel-0:4.18.0-477.135.1.el8_82026-04-08redhat
redhatkernel-rt-0:5.14.0-70.173.1.rt21.245.el9_02026-04-08redhat
redhatkernel-0:4.18.0-372.187.1.el8_62026-04-08redhat
redhatkernel-0:6.12.0-55.65.1.el10_02026-03-30redhat
redhatkernel-0:5.14.0-427.116.1.el9_42026-03-25redhat
redhatkernel-0:5.14.0-570.100.1.el9_62026-03-23redhat
redhatkernel-0:4.18.0-553.107.1.el8_102026-02-23redhat
redhatkernel-rt-0:4.18.0-553.107.1.rt7.448.el8_102026-02-23redhat

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Additional Vendor Advisories

(14)

Data Freshness Timeline

(refreshed 11× in last 7d / 48× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-22 14:07 UTCEPSS rescore
  2. 2026-07-22 14:07 UTCEPSS rescore
  3. 2026-07-21 15:24 UTCEPSS rescore
  4. 2026-07-20 17:07 UTCEPSS rescore
  5. 2026-07-19 14:30 UTCEPSS rescore
  6. 2026-07-19 14:30 UTCEPSS rescore
  7. 2026-07-19 02:28 UTCEPSS rescore
  8. 2026-07-19 02:28 UTCEPSS rescore
  9. 2026-07-18 10:04 UTCEPSS rescore
  10. 2026-07-18 10:04 UTCEPSS rescore
  11. 2026-07-16 17:02 UTCEPSS rescore
  12. 2026-07-15 16:57 UTCEPSS rescore
  13. 2026-07-15 16:57 UTCEPSS rescore
  14. 2026-07-15 01:59 UTCEPSS rescore
  15. 2026-07-15 01:59 UTCEPSS rescore
  16. 2026-07-13 22:29 UTCEPSS rescore
  17. 2026-07-13 22:29 UTCEPSS rescore
  18. 2026-07-13 06:12 UTCEPSS rescore
  19. 2026-07-12 05:46 UTCEPSS rescore
  20. 2026-07-11 08:27 UTCEPSS rescore
  21. 2026-07-11 08:27 UTCEPSS rescore
  22. 2026-07-09 19:09 UTCEPSS rescore
  23. 2026-07-09 19:09 UTCEPSS rescore
  24. 2026-07-07 13:45 UTCEPSS rescore
  25. 2026-07-06 19:19 UTCOSV refresh
Show 66 more
  1. 2026-07-06 16:27 UTCEPSS rescore
  2. 2026-07-06 16:27 UTCEPSS rescore
  3. 2026-07-06 02:23 UTCEPSS rescore
  4. 2026-07-05 02:30 UTCEPSS rescore
  5. 2026-07-04 06:30 UTCEPSS rescore
  6. 2026-07-01 15:06 UTCEPSS rescore
  7. 2026-07-01 15:06 UTCEPSS rescore
  8. 2026-06-30 23:22 UTCEPSS rescore
  9. 2026-06-30 23:22 UTCEPSS rescore
  10. 2026-06-29 14:06 UTCEPSS rescore
  11. 2026-06-29 14:06 UTCEPSS rescore
  12. 2026-06-28 14:07 UTCEPSS rescore
  13. 2026-06-28 14:07 UTCEPSS rescore
  14. 2026-06-28 04:55 UTCEPSS rescore
  15. 2026-06-28 04:55 UTCEPSS rescore
  16. 2026-06-27 03:08 UTCEPSS rescore
  17. 2026-06-27 03:08 UTCEPSS rescore
  18. 2026-06-25 13:49 UTCEPSS rescore
  19. 2026-06-25 13:49 UTCEPSS rescore
  20. 2026-06-24 14:04 UTCEPSS rescore
  21. 2026-06-24 14:04 UTCEPSS rescore
  22. 2026-06-23 21:32 UTCEPSS rescore
  23. 2026-06-23 21:32 UTCEPSS rescore
  24. 2026-06-22 14:25 UTCEPSS rescore
  25. 2026-06-22 14:25 UTCEPSS rescore
  26. 2026-06-21 14:56 UTCEPSS rescore
  27. 2026-06-21 14:56 UTCEPSS rescore
  28. 2026-06-21 01:59 UTCEPSS rescore
  29. 2026-06-21 01:59 UTCEPSS rescore
  30. 2026-06-19 19:25 UTCEPSS rescore
  31. 2026-06-19 19:25 UTCEPSS rescore
  32. 2026-06-18 17:52 UTCEPSS rescore
  33. 2026-06-18 17:52 UTCEPSS rescore
  34. 2026-06-18 07:43 UTCOSV refresh
  35. 2026-06-17 17:52 UTCEPSS rescore
  36. 2026-06-16 17:52 UTCEPSS rescore
  37. 2026-06-16 17:52 UTCEPSS rescore
  38. 2026-06-14 23:18 UTCMITRE cvelistV5
  39. 2026-06-14 23:17 UTCEPSS rescore
  40. 2026-06-13 23:00 UTCEPSS rescore
  41. 2026-06-12 23:11 UTCEPSS rescore
  42. 2026-06-11 14:00 UTCEPSS rescore
  43. 2026-06-10 22:18 UTCEPSS rescore
  44. 2026-06-10 13:22 UTCEPSS rescore
  45. 2026-06-08 14:16 UTCEPSS rescore
  46. 2026-06-08 14:16 UTCEPSS rescore
  47. 2026-06-07 15:24 UTCEPSS rescore
  48. 2026-06-06 13:47 UTCEPSS rescore
  49. 2026-06-06 13:47 UTCEPSS rescore
  50. 2026-06-05 22:46 UTCEPSS rescore
  51. 2026-06-05 22:46 UTCEPSS rescore
  52. 2026-06-05 06:10 UTCEPSS rescore
  53. 2026-06-05 06:10 UTCEPSS rescore
  54. 2026-06-04 13:12 UTCEPSS rescore
  55. 2026-06-04 13:12 UTCEPSS rescore
  56. 2026-06-02 20:12 UTCEPSS rescore
  57. 2026-06-01 13:51 UTCEPSS rescore
  58. 2026-06-01 13:51 UTCEPSS rescore
  59. 2026-05-31 22:30 UTCEPSS rescore
  60. 2026-05-31 22:30 UTCEPSS rescore
  61. 2026-05-31 00:16 UTCEPSS rescore
  62. 2026-05-30 02:13 UTCEG score recompute
  63. 2026-05-30 02:13 UTCVendor advisory
  64. 2026-05-30 02:12 UTCGHSA enrichment
  65. 2026-05-29 23:42 UTCOSV refresh
  66. 2026-05-29 13:44 UTCEPSS rescore

Frequently asked(4)

What is CVE-2025-38248?
CVE-2025-38248 is a publicly disclosed vulnerability published on July 9, 2025. In the Linux kernel, the following vulnerability has been resolved: bridge: mcast: Fix use-after-free during router port configuration The bridge maintains a global list of ports behind which a multicast router resides. The list is consulted during forwarding to ensure multicast packets are…
When was CVE-2025-38248 disclosed?
CVE-2025-38248 was first published in the National Vulnerability Database on July 9, 2025, with the most recent update on June 11, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2025-38248 actively exploited?
CVE-2025-38248 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 16.2% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
How do I remediate CVE-2025-38248?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2025-38248, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2025-38248

Explore →

Is Your Infrastructure Affected by CVE-2025-38248?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.