CVE-2026-41642: Github.com/osrg/gobgp/v4 Denial of Service Vulnerability

HIGH
Advisory Identifier: GHSA-7235-89m6-f4px
CVSS 7.5
CWE-476
Published
Advisory Summary

CVE-2026-41642 is a HIGH (CVSS 7.5) denial of service vulnerability (CWE-476: NULL Pointer Dereference) affecting Github.com/osrg/gobgp/v4 libraries in the Go ecosystem. The issue involves gobgp has remote denial of service (panic) via malformed well-known path attribute. Remediation is available by upgrading affected packages to version 4.4.0.

CVE-2026-41642 at a Glance

CVE Identifier CVE-2026-41642
GHSA Identifier GHSA-7235-89m6-f4px
Severity HIGH
CVSS v3.1 Base Score 7.5
CWE Classification CWE-476: NULL Pointer Dereference
Affected Product Github.com/osrg/gobgp/v4
Package Ecosystem Go
Published Date
Last Updated

Security Impact

CVSS: 7.5

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality None (C:N)
Integrity None (I:N)
Availability High (A:H)

How to Fix CVE-2026-41642

To remediate this vulnerability, upgrade all affected Github.com/osrg/gobgp/v4 dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/osrg/gobgp/v4 fixed: 4.4.0
Upgrade github.com/osrg/gobgp/v4 to 4.4.0
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/osrg/gobgp/v4

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-41642, inspect your project dependencies for Github.com/osrg/gobgp/v4:

inspect dependencies for github.com/osrg/gobgp/v4

Analyze the terminal output to locate any version of Github.com/osrg/gobgp/v4 in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 4.4.0), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-476: NULL Pointer Dereference, where the product dereferences a pointer that it expects to be valid but is null. In Github.com/osrg/gobgp/v4, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Summary A remote Denial of Service (DoS) vulnerability exists in GoBGP due to a nil pointer dereference. When a malformed BGP UPDATE message contains an unrecognized Path Attribute marked as "Well-known," the daemon fails to interrupt the message handling flow. This results in an illegal memory access and a full process crash (panic). ### Details The vulnerability is located in the Finite State Machine (FSM) message handling loop in pkg/server/fsm.go. According to RFC 4271, any Path Attribute with the Optional bit set to 0 is treated as "Well-known." If the Type Code is unrecognized, the BGP speaker MUST send a NOTIFICATION message. In GoBGP v4.3.0, when such an attribute (e.g., Type 0xEE or 0xFF with flags 0x40) is received, the parsing layer identifies the error. However, the logic in recvMessageloop (around Line 1826) does not properly halt execution. It proceeds to reference the body of the parsed message. Because the message was deemed invalid during the initial attribute check, the body pointer is nil, leading to: panic: runtime error: invalid memory address or nil pointer dereference. This bypasses the intended error-handling mechanism and causes the entire BGP daemon to terminate, rather than just closing the affected session. ``` panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0xc225e4] goroutine 50 [running]: github.com/osrg/gobgp/v4/pkg/server.(*fsmHandler).recvMessageloop(0x19f29bca92c0, {0x10069f0, 0x19f29bc48780}, {0x1014658, 0x19f29bc2a890}, 0x19f29baa0540, 0x19f29bc393b0, 0x19f29bc96cc0?) /home/base/Desktop/gobgp/pkg/server/fsm.go:1826 +0xa44 created by github.com/osrg/gobgp/v4/pkg/server.(*fsmHandler).established in goroutine 37 /home/base/Desktop/gobgp/pkg/server/fsm.go:1916 +0x2d5 exit status 2 ``` ### PoC GoBGP Version: v4.3.0 Configure GoBGP with a neighbor (e.g., 192.168.31.195) in passive mode. Establish a standard BGP session (OPEN/KEEPALIVE exchange). Send a specifically crafted UPDATE packet containing an unrecognized Type Code marked as "Well-known" (Optional bit = 0). Payload 1 (Hex): ``` FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 17 # Length: 23 02 # Type: UPDATE 00 00 # Withdrawn Routes Length: 0 00 04 # Total Path Attribute Length: 4 40 EE 00 # Flag: 0x40 (Well-known, Transitive), Type: 0xEE (Unknown), Len: 0 ``` Payload 2 (Hex): ``` FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 17 # Length: 23 02 # Type: UPDATE 00 00 # Withdrawn Routes Length: 0 00 04 # Total Path Attribute Length: 4 40 01 01 00 # IGP Attribute 40 FF 00 # Flag: 0x40 (Well-known, Transitive), Type: 0xFF (Unknown), Len: 0 ``` ### Impact This vulnerability affects all GoBGP deployments peering with external or internal speakers. A single malformed UPDATE message from any peer can trigger a nil pointer dereference, causing the GoBGP daemon to panic and crash.

CVE-2026-41642 Affected Github.com/osrg/gobgp/v4 Versions

1 component(s)
Fixed Versions:
4.4.0
Product / Package Ecosystem Affected Versions Fixed Version
github.com/osrg/gobgp/v4
Go
≥ 4.3.0
< 4.4.0
All 1 versions
4.3.0
4.4.0

References

Frequently Asked Questions

What is CVE-2026-41642?
CVE-2026-41642 is a security vulnerability in Github.com/osrg/gobgp/v4 involving GoBGP has Remote Denial of Service (Panic) via Malformed Well-known Path Attribute under CWE-476: NULL Pointer Dereference.
Which Github.com/osrg/gobgp/v4 versions are affected?
Affected versions include releases prior to 4.4.0 across affected packages: github.com/osrg/gobgp/v4.
What version fixes CVE-2026-41642?
Upgrading to 4.4.0 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/osrg/gobgp/v4 affected?
Yes, github.com/osrg/gobgp/v4 is affected in releases prior to 4.4.0. Upgrade your dependency to 4.4.0 or later.
What is the CVSS score of CVE-2026-41642?
CVE-2026-41642 has a CVSS v3.1 base score of 7.5 (HIGH) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.
What CWE is associated with CVE-2026-41642?
CVE-2026-41642 is classified under CWE-476: NULL Pointer Dereference (The product dereferences a pointer that it expects to be valid but is NULL.).
How can I check Go dependencies for CVE-2026-41642?
Run the dependency tree command: 'inspect dependencies for github.com/osrg/gobgp/v4'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-7235-89m6-f4px",
  "modified" : "2026-05-08T20:42:26Z",
  "published" : "2026-04-29T20:43:36Z",
  "aliases" : [ "CVE-2026-41642" ],
  "summary" : "GoBGP has Remote Denial of Service (Panic) via Malformed Well-known Path Attribute",
  "details" : "### Summary\nA remote Denial of Service (DoS) vulnerability exists in GoBGP due to a nil pointer dereference. When a malformed BGP UPDATE message contains an unrecognized Path Attribute marked as \"Well-known,\" the daemon fails to interrupt the message handling flow. This results in an illegal memory access and a full process crash (panic).\n\n### Details\nThe vulnerability is located in the Finite State Machine (FSM) message handling loop in pkg/server/fsm.go.\nAccording to RFC 4271, any Path Attribute with the Optional bit set to 0 is treated as \"Well-known.\" If the Type Code is unrecognized, the BGP speaker MUST send a NOTIFICATION message.\n\nIn GoBGP v4.3.0, when such an attribute (e.g., Type 0xEE or 0xFF with flags 0x40) is received, the parsing layer identifies the error. However, the logic in recvMessageloop (around Line 1826) does not properly halt execution. It proceeds to reference the body of the parsed message. Because the message was deemed invalid during the initial attribute check, the body pointer is nil, leading to:\npanic: runtime error: invalid memory address or nil pointer dereference.\n\nThis bypasses the intended error-handling mechanism and causes the entire BGP daemon to terminate, rather than just closing the affected session.\n\n```\npanic: runtime error: invalid memory address or nil pointer dereference\n[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0xc225e4]\n\ngoroutine 50 [running]:\ngithub.com/osrg/gobgp/v4/pkg/server.(*fsmHandler).recvMessageloop(0x19f29bca92c0, {0x10069f0, 0x19f29bc48780}, {0x1014658, 0x19f29bc2a890}, 0x19f29baa0540, 0x19f29bc393b0, 0x19f29bc96cc0?)\n        /home/base/Desktop/gobgp/pkg/server/fsm.go:1826 +0xa44\ncreated by github.com/osrg/gobgp/v4/pkg/server.(*fsmHandler).established in goroutine 37\n        /home/base/Desktop/gobgp/pkg/server/fsm.go:1916 +0x2d5\nexit status 2\n\n```\n\n### PoC\nGoBGP Version: v4.3.0\nConfigure GoBGP with a neighbor (e.g., 192.168.31.195) in passive mode.\nEstablish a standard BGP session (OPEN/KEEPALIVE exchange).\nSend a specifically crafted UPDATE packet containing an unrecognized Type Code marked as \"Well-known\" (Optional bit = 0).\nPayload 1 (Hex):\n```\nFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF\n00 17                # Length: 23\n02                   # Type: UPDATE\n00 00                # Withdrawn Routes Length: 0\n00 04                # Total Path Attribute Length: 4     \n40 EE 00             # Flag: 0x40 (Well-known, Transitive), Type: 0xEE (Unknown), Len: 0\n```\nPayload 2 (Hex):\n```\nFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF\n00 17                # Length: 23\n02                   # Type: UPDATE\n00 00                # Withdrawn Routes Length: 0\n00 04                # Total Path Attribute Length: 4     \n40 01 01 00          # IGP Attribute\n40 FF 00             # Flag: 0x40 (Well-known, Transitive), Type: 0xFF (Unknown), Len: 0\n```\n### Impact\nThis vulnerability affects all GoBGP deployments peering with external or internal speakers. A single malformed UPDATE message from any peer can trigger a nil pointer dereference, causing the GoBGP daemon to panic and crash.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/osrg/gobgp/v4"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "4.3.0"
      }, {
        "fixed" : "4.4.0"
      } ]
    } ],
    "versions" : [ "4.3.0" ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/osrg/gobgp/security/advisories/GHSA-7235-89m6-f4px"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-41642"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/osrg/gobgp"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/osrg/gobgp/releases/tag/v4.4.0"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-476" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-04-29T20:43:36Z",
    "nvd_published_at" : "2026-05-07T12:16:17Z"
  }
}