net: bridge: mdb: restart port group walk after deletion
In the Linux kernel, the following vulnerability has been resolved: net: bridge: mdb: restart port group walk after deletion br_mdb_flush_pgs() keeps a pointer-to-pointer cursor while walking mp->ports. br_multicast_del_pg() can re-enter the same MDB entry through br_multicast_sg_del_exclude_ports() and unlink other port groups. If the cursor points into one of those groups, the next iteration dereferences a stale cursor and can leave mp->ports pointing at freed memory. A following RTM_GETMDB exposes the dangling pointer: BUG: KASAN: slab-use-after-free in br_mdb_dump Read of size 8 br_mdb_dump rtnl_mdb_dump rtnl_dumpit netlink_dump Reset the cursor to mp->ports after every deletion. The deletion removes at least the selected group, so the restarted walk always makes progress.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 6.12.112, 6.18.55, 7.2.9
- CVEs
- CVE-2026-98487
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 17:24 UTC · Revision 1
Source evidence
net: bridge: mdb: restart port group walk after deletion
core-osv · Original sourcePublished 18 Oct 2026, 15:16 UTC
In the Linux kernel, the following vulnerability has been resolved: net: bridge: mdb: restart port group walk after deletion br_mdb_flush_pgs() keeps a pointer-to-pointer cursor while walking mp->ports. br_multicast_del_pg() can re-enter the same MDB entry through br_multicast_sg_del_exclude_ports() and unlink other port groups. If the cursor points into one of those groups, the next iteration dereferences a stale cursor and can leave mp->ports pointing at freed memory. A following RTM_GETMDB exposes the dangling pointer: BUG: KASAN: slab-use-after-free in br_mdb_dump Read of size 8 br_mdb_dump rtnl_mdb_dump rtnl_dumpit netlink_dump Reset the cursor to mp->ports after every deletion. The deletion removes at least the selected group, so the restarted walk always makes progress.
osv:CVE-2026-98487
Kernel
Fixed versions: 6.12.112, 6.18.55, 7.2.9
Complete source record
{
"id": "72bccb0aa3055773c364f473487a09da25cb6e6e6c138a8d4574a6da3ebc16fc",
"url": "https://osv.dev/vulnerability/CVE-2026-98487",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "net: bridge: mdb: restart port group walk after deletion",
"summary": "In the Linux kernel, the following vulnerability has been resolved: net: bridge: mdb: restart port group walk after deletion br_mdb_flush_pgs() keeps a pointer-to-pointer cursor while walking mp->ports. br_multicast_del_pg() can re-enter the same MDB entry through br_multicast_sg_del_exclude_ports() and unlink other port groups. If the cursor points into one of those groups, the next iteration dereferences a stale cursor and can leave mp->ports pointing at freed memory. A following RTM_GETMDB exposes the dangling pointer: BUG: KASAN: slab-use-after-free in br_mdb_dump Read of size 8 br_mdb_dump rtnl_mdb_dump rtnl_dumpit netlink_dump Reset the cursor to mp->ports after every deletion. The deletion removes at least the selected group, so the restarted walk always makes progress.",
"evidence": "osv:CVE-2026-98487",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "6.12.112",
"evidence": "/affected/1/ranges"
},
{
"value": "6.18.55",
"evidence": "/affected/1/ranges"
},
{
"value": "7.2.9",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "CVE-2026-98487",
"aliases": [
"CVE-2026-98487"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "a6acb535afb2a3b688a7858f05b61f0433e480d5"
},
{
"fixed": "46ec55855c972504258c371677ac039ba20e5d12"
},
{
"fixed": "ab3c4a4c85f2e1e8d04b5c1770dea8412d21c7fe"
},
{
"fixed": "fe2a42789c12eb7c5d3a42191e2cc735a6c35ead"
},
{
"fixed": "ab1404ac81154a89fb61ac50ae9a04cd8d4834dc"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98487.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.8.0"
},
{
"fixed": "6.12.112"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.18.55"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.19.0"
},
{
"fixed": "7.2.9"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98487.json"
}
}
],
"modified": "2026-10-28T02:30:30.663897823Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/46ec55855c972504258c371677ac039ba20e5d12",
"https://git.kernel.org/stable/c/ab1404ac81154a89fb61ac50ae9a04cd8d4834dc",
"https://git.kernel.org/stable/c/ab3c4a4c85f2e1e8d04b5c1770dea8412d21c7fe",
"https://git.kernel.org/stable/c/fe2a42789c12eb7c5d3a42191e2cc735a6c35ead",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98487.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-98487",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98487.json"
}
},
"related_cves": [
{
"value": "CVE-2026-98487",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 497795,
"published_at": "2026-10-18T15:16:04.746+00:00"
}