CVE-2025-38248

HIGHNVD 7.87.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
7.8EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 7.8Exploit: None knownExposed: 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
7.8
EG Score
7.8(medium)
EG Risk
35(Track)
EG Risk 35/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity78% × 45%
Exploitation0% × 40%
Automatability0% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
17%
KEV
Not listed

Published

July 9, 2025

Last Modified

August 5, 2026

Advisory Details (4)

Auto-updated Jul 30, 2026
No patch confirmed yet.
generic

bridge: mcast: Fix use-after-free during router port configuration - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/f05a4f9e959e0fc098046044c650acf897ea52d2
generic

bridge: mcast: Fix use-after-free during router port configuration - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/bdced577da71b118b6ed4242ebd47f81bf54d406
generic

bridge: mcast: Fix use-after-free during router port configuration - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/7544f3f5b0b58c396f374d060898b5939da31709
generic

bridge: mcast: Fix use-after-free during router port configuration - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/4d3c2a1d4c7c33103f1ddfdbc5cfe1ea4f6d0dcd

Patch Availability(31)

Vendor / EcosystemFixed in / PatchReleasedSource
ubuntulinux-tools-azure-edge (6.8.0-1051.57~22.04.1) @ jammy2026-07-30ubuntu
ubuntulinux-tools-raspi-nolpae (5.15.0.1097.95) @ jammy2026-07-30ubuntu
ubuntulinux-tools-azure-fips-5.15 (5.15.0.1109.94) @ jammy2026-07-30ubuntu
ubuntulinux-tools-azure-lts-22.04 (5.15.0.1109.107) @ jammy2026-07-30ubuntu
ubuntulinux-tools-azure-edge (5.15.0.1110.119~20.04.1) @ focal2026-07-30ubuntu
ubuntulinux-virtual-hwe-24.04-edge (6.14.0-34.34) @ plucky2026-07-30ubuntu
ubuntulinux-tools-realtime-hwe-24.04-edge (6.14.0-1014.14~24.04.1) @ noble2026-07-30ubuntu
ubuntulinux-virtual-6.8 (6.8.0-100.100) @ noble2026-07-30ubuntu
ubuntulinux-virtual-hwe-24.04-edge (6.14.0-34.34~24.04.1) @ noble2026-07-30ubuntu
ubuntulinux-tools-gcp-edge (6.14.0-1018.19~24.04.1) @ noble2026-07-30ubuntu
ubuntulinux-tools-aws-edge (6.14.0-1015.15~24.04.1) @ noble2026-07-30ubuntu
ubuntulinux-tools-azure-6.14 (6.14.0-1014.14) @ plucky2026-07-30ubuntu
ubuntulinux-tools-realtime-hwe-22.04 (6.8.1-1041.42~22.04.1) @ jammy2026-07-30ubuntu
ubuntulinux-tools-gcp-edge (6.8.0-1047.50~22.04.2) @ jammy2026-07-30ubuntu
ubuntulinux-tools-fips-6.8 (6.8.0-100.100+fips1) @ noble2026-07-30ubuntu
ubuntulinux-tools-gcp-fips-6.8 (6.8.0-1047.50+fips1) @ noble2026-07-30ubuntu
ubuntulinux-tools-realtime-6.8.1 (6.8.1-1041.42) @ noble2026-07-30ubuntu
ubuntulinux-tools-nvidia-tegra-rt-5.15 (5.15.0.1052.52) @ jammy2026-07-30ubuntu
ubuntulinux-tools-aws-edge (5.15.0.1100.107~20.04.1) @ focal2026-07-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-0:4.18.0-372.187.1.el8_62026-04-08redhat
redhatkernel-rt-0:5.14.0-70.173.1.rt21.245.el9_02026-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-rt-0:4.18.0-553.107.1.rt7.448.el8_102026-02-23redhat
redhatkernel-0:4.18.0-553.107.1.el8_102026-02-23redhat
linuxKernel @ 6.6.122osv

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.

Affected Packages

(3 across 3 ecosystems)
Debian:12(1)
PackageVulnerable rangeFixed inDependents
linux6.1.106-1 ... 7.2~rc5-1~exp1 (335 versions)
Debian:13(1)
PackageVulnerable rangeFixed inDependents
linux6.12.38-1 ... 6.12.69-1~bpo12+1 (10 versions)6.12.69-1
Debian:14(1)
PackageVulnerable rangeFixed inDependents
linux6.12.100-1 ... 6.16~rc7-1~exp1 (59 versions)6.16.3-1

Weakness Classification(1)

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

Additional Vendor Advisories

(14)

Data Freshness Timeline

(refreshed 5× in last 7d / 26× 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.

Showing the most recent 100 of 142 total refreshes for this CVE.

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

Frequently asked(5)

What is CVE-2025-38248?
CVE-2025-38248 is a high 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 August 5, 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 0% probability of exploitation in the next 30 days, which ranks it in the top 83.3% of all scored CVEs.
What is the CVSS score of CVE-2025-38248?
CVE-2025-38248 has a CVSS v3 base score of 7.8 (NVD).
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

See which npm, PyPI, Go, and Maven packages are affected by 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.