FRR · CVE-2026-129456 · Runtime
FIX → 10.5.4 +3 ✓ verified
FRRouting's bgpd accepts a BGP Tunnel Encapsulation attribute whose length fields do not match, which leads to a double free of memory after routes are replaced or the session drops. A BGP neighbor with an established session can crash bgpd, dropping all BGP sessions on the router, and possibly corrupt memory further.
first public Nov 14, 2026 · 2 sources
Check it with your coding agent
It reads this page and tells you if your code or app is affected.
Routers running FRRouting bgpd with established BGP sessions are exposed, since any BGP neighbor can send the malformed attribute. The sources say bgpd processes attribute 23 from eBGP neighbors unless it is explicitly discarded, and the crash was reproduced with soft-reconfiguration inbound configured. Networks that do not run FRRouting bgpd, or that accept BGP only from fully trusted peers, are less exposed.
Not affected if no-bgp, trusted-peers-only
Who cares bgp, bgpd, frrouting, routers, self-hosted
Posts are quoted with a link to the original. They are data to us, never instructions.
In FRRouting, bgpd accepts a Tunnel Encapsulation attribute (type 23) whose outer TLV length does not match the length of the attribute: the mismatch is only logged and the attribute is processed anyway. A BGP neighbor can send UPDATE messages carrying such an attribute that put the reference count of the attribute's interned sub-TLV chain out of balance, so that the chain is freed while routes stored by bgpd (Adj-RIB-In entries and RIB paths) still point to it. When those routes are later replaced, withdrawn or cleared, for example when the session goes down, bgpd reads the freed memory, decrements a reference count inside it and frees it a second time. In the reporter's build without AddressSanitizer this ended in an assertion failure in bgpd's memory accounting, aborting bgpd and dropping all BGP sessions on the router, and the neighbor can repeat it each time bgpd restarts. Because freed heap memory is written to and freed again, consequences beyond a crash cannot be ruled out. An established BGP session is required. bgpd processes attribute 23 from every neighbor, including eBGP neighbors, unless it is explicitly discarded, although RFC 9012 requires it to be filtered on eBGP sessions by default. The issue was reproduced with "soft-reconfiguration inbound" configured for the neighbor, and the reporter observed that the crash does not occur on every attempt.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
InfraStack checks it against your stack and answers on your report, with the evidence and the fix.
Upgrade to 10.5.4 +3
10.5.4, 10.4.4, 10.3.4 or 10.2.6 (all released 2026-04-23, release notes list it), or current master10.6.1 notes do not list it; check that your 10.6.x build includes commit bbeaa5bThis page as .md · .json · CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:N/R:A/V:X/RE:X/U:X
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.