Skip to content

security: 7 reachable govulncheck findings - 6 stdlib (fixed in go1.26.6) + GO-2026-6222 in golang.org/x/image #907

Description

@PierrunoYT

Ran govulncheck ./... against current main (980f2f4, go 1.26.5 in go.mod, golang.org/x/image v0.44.0). 7 reachable vulnerabilities: 6 in the standard library (all fixed in go1.26.6) and 1 in golang.org/x/image (fixed in v0.45.0).

Not a request to bump CI pins blindly: per AGENTS.md the toolchain version is declared in go.mod, so the fix is the go/toolchain directive plus one dependency bump, then re-running make vulncheck.

Standard library (fixed in go1.26.6)

GO-2026-6218 - quadratic complexity in net/url resolvePath

  • internal/tools/web_search.go:266 - httpSearchBackend.Search -> http.Client.Do -> url.URL.Parse
  • internal/mcp/network_client.go:736 - resolveSSEEndpointURL -> url.URL.ResolveReference

GO-2026-6090 - unbounded post-handshake messages in crypto/tls

  • internal/mcp/oauth.go:430 - Login -> http.Server.Serve -> tls.Conn.HandshakeContext
  • internal/dictation/download.go:722 - progressReader.Read -> tls.Conn.Read
  • internal/daemon/protocol.go:64 - WriteFrame -> tls.Conn.Write
  • internal/daemon/remote/client.go:79 - dialAuthenticated -> tls.Dialer.DialContext

GO-2026-6089 - ReadHeaderTimeout not applied during the unencrypted HTTP/2 check in net/http

  • internal/mcp/oauth.go:430 - Login -> http.Server.Serve

GO-2026-6088 - missing recursion depth guard in encoding/xml

  • internal/daemon/pool.go:326 - Pool.Drain -> xml.Decoder.Decode
  • internal/tui/syntax_highlight.go:11 - lexers.init -> xml.Decoder.DecodeElement / xml.Decoder.Token

GO-2026-5972 - no maximum recursion depth in encoding/asn1

  • internal/daemon/remote/bridge.go:250 - ServerTLSConfig -> tls.LoadX509KeyPair -> asn1.Unmarshal

GO-2026-5026 - ASCII-only Punycode-encoded labels not rejected in golang.org/x/net/idna (vendored in stdlib net/http)

  • internal/tools/web_search.go:266, internal/mcp/network_client.go:782

All six resolve by moving the go directive to 1.26.6.

Module dependency (fixed in v0.45.0)

GO-2026-6222 - excessive memory allocation during VP8L decoding in golang.org/x/image

  • internal/terminalpet/client.go:738 - decodeImage -> image.Decode -> vp8l.Decode

Resolves with go get golang.org/x/image@v0.45.0 and go mod tidy.

govulncheck also reported 2 unreachable findings (1 imported package, 1 required module); those do not affect callers and are not listed here. Full output available with go run golang.org/x/vuln/cmd/govulncheck@v1.3.0 ./... once built with a >= 1.26.6 toolchain.

Proposed fix

  1. Bump go in go.mod to 1.26.6 (no toolchain line is currently pinned).
  2. go get golang.org/x/image@v0.45.0 && go mod tidy.
  3. Re-run make fmt-check, go vet ./..., go test ./..., make vulncheck per AGENTS.md validation.

Happy to open the PR if the approach sounds right.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions