Go, ook aangeduid als golang, is een programmeertaal die sinds 2007 wordt ontwikkeld door Google en de opensourcegemeenschap. De taal wordt onder andere door CloudFlare, Google, Netflix en Uber gebruikt. Go-code kan worden gecompileerd voor Android, Linux, macOS, FreeBSD en Windows, op i386-, amd64- en ARM-processorarchitecturen. De syntax van Go is vergelijkbaar met die van C en soortgelijke programmeertalen, hoewel er ook enkele opvallende verschillen zijn. Ook biedt Go de mogelijkheid voor gedistribueerd programmeren, waarbij verschillende processen tegelijk worden uitgevoerd. Het team heeft Go versies 1.14.7 en 1.13.15 vrijgegeven met de volgende aankondiging:
[security] Go 1.14.7 and Go 1.13.15 are released
Hi gophers,
We have just released Go 1.14.7 and Go 1.13.15 to address a recently reported security issue. We recommend that all users update to one of these releases (if you’re not sure which, choose Go 1.14.7).The upcoming Go 1.15rc2 release will also include the fix above.
- encoding/binary: ReadUvarint and ReadVarint can read an unlimited number of bytes from invalid inputs
Certain invalid inputs to ReadUvarint or ReadVarint could cause those functions to read an unlimited number of bytes from the ByteReader argument before returning an error. This could lead to processing more input than expected when the caller is reading directly from a network and depends on ReadUvarint and ReadVarint only consuming a small, bounded number of bytes, even from invalid inputs.
With the update, ReadUvarint and ReadVarint now always return after consuming a bounded number of bytes (specifically, MaxVarintLen64, which is 10). The result being returned has not changed; the functions merely detect and return some errors without reading as much input.
Thanks to Diederik Loerakker, Jonny Rhea, Raúl Kripalani, and Preston Van Loon for reporting this issue.
This issue is CVE-2020-16845 and Go issue golang.org/issue/40618.
Downloads are available at https://golang.org/dl for all supported platforms.
Thank you,
Katie and Filippo on behalf of the Go team