GitHub Advisoryadvisory · Go
GHSA-39qr-rc93-vhqm Bird-lg-go has a Fatal Out-of-Memory (OOM) Denial of Service via Unbounded JSON Decoding
HIGH
Official page ↗
- Aliases
- CVE-2026-45047
- Ecosystem
- Go
- Packages
- github.com/xddxdd/bird-lg-go
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-400
- Reviewed
- 2026-05-11
Affected packages
• Go github.com/xddxdd/bird-lg-go: < 0.0.0-20260507060110-0ff87024cb9e → fixed in 0.0.0-20260507060110-0ff87024cb9e
Description
Summary
The `apiHandler` (and similarly `webHandlerTelegramBot`) processes user-provided JSON payloads by directly using `json.NewDecoder(r.Body).Decode(&request)` without restricting the maximum read size. An unauthenticated remote attacker can stream an extremely large, endless JSON payload (e.g., several Gigabytes of padding) over a single TCP connection. Because Go's JSON decoder attempts to allocate memory for the entire parsed structure, this rapidly exhausts the host's physical RAM or container limits, leading to an unrecoverable `fatal error: runtime: out of memory`.
This causes the Linux OOM Killer to instantly terminate the entire `bird-lg-go` daemon, resulting in a severe Remote Denial of Service (RDoS).
Details
In `api.go`:
```go
func apiHandler(w http.ResponseWriter, r *http.Request) {
var request apiRequest
// VULNERABILITY: No http.MaxBytesReader protection before JSON decode
err := json.NewDecoder(r.Body).Decode(&request)
// ...
Related
Alias · CVE (1)
- CVE-2026-45047 bird-lg-go is a BIRD looking glass in Go. vulnerability
Weakness · CWE (1)
- CWE-400 Uncontrolled Resource Consumption weakness
References
- https://github.com/xddxdd/bird-lg-go/security/advisories/GHSA-39qr-rc93-vhqm web
- https://nvd.nist.gov/vuln/detail/CVE-2026-45047 advisory
- https://github.com/xddxdd/bird-lg-go/commit/0ff87024cb9ed01fc5f5fdc6f4603fce4c123922 web
- https://github.com/xddxdd/bird-lg-go package
- https://github.com/xddxdd/bird-lg-go/releases/tag/v1.4.5 web