Medium, CVSS 6.3GoPublished
kube-router: GoBGP gRPC Admin Port Exposed on Node Primary IP Without Authentication, Allowing Cluster-Wide BGP Route Injection
GHSA-v5mh-h5hx-7v92
- Affected
- Go github.com/cloudnativelabs/kube-router <= 2.8.1
- Fixed in
- 2.9.0· Vendor fix available
- Issue
- When the kube-router routing controller starts (--run-router), it binds the GoBGP gRPC management server to the node's primary IP (e.g., 192.168.1.10:50051) in addition to 127.0.0.1:50051. The default admin port is 50051 and the server is enabled by default with no TLS and no authentication. Any pod in the cluster can reach node IPs and therefore call the GoBGP gRPC API to inject arbitrary BGP routes, enumerate peer configurations, add unauthorized BGP neighbors, or withdraw legitimate routes. While kube-router's BGP export policy of ROUTEACTIONREJECT limits the attack surface to the local node's GoBGP RIB, an attacker can still impact local routing decisions. Details The gRPC server is started unconditionally when --run-router is active. In pkg/controllers/routing/networkroutescontroller.go, the startBgpServer(true) call at line 365 passes grpcServer=true, and the binding logic at lines 1057–1061 is: The default admin port is defined in pkg/options/options.go: No…
Recommended action: Upgrade to 2.9.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.