Go 1.16.4 のリリース【セキュリティ・アップデート】
Go 1.16.4 がリリースされた。
今回は1件の脆弱性修正を含んでいる。
go1.16.4 (released 2021/05/06) includes a security fix to the.net/http
package, as well as bug fixes to the runtime, the compiler, and thearchive/zip
,time
, andsyscall
packages. See the Go 1.16.4 milestone on our issue tracker for details
CVE-2021-31525
.ReadRequest
andReadResponse
innet/http
can hit an unrecoverable panic when reading a very large header (over 7MB on 64-bit architectures, or over 4MB on 32-bit ones).Transport
andClient
are vulnerable and the program can be made to crash by a malicious server.Server
is not vulnerable by default, but can be if the default max header of 1MB is overridden by settingServer.MaxHeaderBytes
to a higher value, in which case the program can be made to crash by a malicious client
この脆弱性は
golang.org/x/net/http2/h2c
HeaderValuesContainsToken
ingolang.org/x/net/http/httpguts
にも影響するらしい。 該当のパッケージを利用している場合は最新リビジョンにアップデートすること。
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
- 深刻度: 警告 (Score: 5.9)
基本評価基準 | 評価値 |
---|---|
攻撃元区分 | ネットワーク |
攻撃条件の複雑さ | 高 |
必要な特権レベル | 不要 |
ユーザ関与レベル | 不要 |
スコープ | 変更なし |
機密性への影響 | なし |
完全性への影響 | なし |
可用性への影響 | 高 |
例によって…
Ubuntu の APT で管理している Go コンパイラは古いので,ダウンロードページからバイナリ(go1.16.4.linux-amd64.tar.gz
)を取ってきて手動でインストールすることを強く推奨する。
以下は手動での作業例。
$ cd /usr/local/src
$ sudo curl -L "https://golang.org/dl/go1.16.4.linux-amd64.tar.gz" -O
$ cd ..
$ sudo unlink go # 以前の Go が入っている場合
$ sudo tar xvf src/go1.16.4.linux-amd64.tar.gz
$ sudo mv go go1.16.4
$ sudo ln -s go1.16.4 go
$ go version # /usr/local/go/bin にパスが通っている場合
go version go1.16.1 linux/amd64
アップデートは計画的に。
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。と思ったら絶版状態らしい(2025-01 現在)。復刊を望む!