RepoJournal
Go

@golang

Go and the standard library - backend infrastructure at scale

Keep up with Go in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: Go Infrastructure Full archive →

The Wire · Showcase

GO FIXES QUADRATIC URL PARSING BUG, TIGHTENS XML RECURSION DEPTH

By RepoJournal · Filed · About Go

The core library shipped two security-relevant fixes overnight that eliminate algorithmic vulnerabilities in URL resolution and XML decoding that could be exploited to cause denial of service.

A critical performance regression in net/url.resolvePath is now fixed [1]. The function was calling dst.String() and dst.WriteString() inside a loop on deep paths, causing quadratic complexity. The fix switches to index-based backtracking on a byte slice, delivering 23.65% faster simple path resolution and significantly steeper wins on deep paths. In parallel, encoding/xml.Decoder.unmarshal now properly enforces recursion depth limits [2]. Previously, the DecodeElement method bypassed the guard by hardcoding depth to 0, allowing malicious XML documents to bypass depth tracking through custom UnmarshalXML implementations. The fix maintains depth as a stack value adjusted when elements push and pop, eliminating the bypass vector entirely. On the developer tooling front, gopls picked up assembly file support with DocumentHighlight for label scoping [5], while the build team automated stale watchflakes cleanup to keep issue trackers fresh [4]. The http2 implementation also cut memory overhead by building HPACK table lookup maps lazily only for encoders, not decoders [3], a meaningful optimization for servers with idle connections.

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] net/url: avoid quadratic complexity in resolvePath golang/go
  2. [2] encoding/xml: fix depth processing in (*Decoder).unmarshal golang/go
  3. [3] http2/hpack: build the table lookup maps lazily, only for encoders golang/net
  4. [4] cmd/gopherbot: add task to close stale watchflakes issues golang/build
  5. [5] gopls: add assembly DocumentHighlight, fix label scoping golang/tools

Quick answers

What shipped in Go on July 30, 2026?
The core library shipped two security-relevant fixes overnight that eliminate algorithmic vulnerabilities in URL resolution and XML decoding that could be exploited to cause denial of service. In total, 11 commits landed.
Who contributed to Go on July 30, 2026?
9 developers shipped this update, including Ian Alexander, Mark Freeman, Filippo Valsorda, Cherry Mui, Brad Fitzpatrick, Hana Kim, Peter Weinberger, and Groot Guo, and 1 more.
What were the notable Go updates?
net/url: avoid quadratic complexity in resolvePath, encoding/xml: fix depth processing in (*Decoder).unmarshal, and http2/hpack: build the table lookup maps lazily, only for encoders.

More from @golang

Daily updates, in your inbox

Follow Go

Keep up with Go in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?