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
- アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)
- 丸善出版 2016-06-20 (Release 2021-07-13)
- Kindle版
- B099928SJD (ASIN)
- 評価
Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想はこちら。