Go 1.15.5 のリリース【セキュリティ・アップデート】
今回は複数の脆弱性について改修されている。
math/big: panic during recursive division of very large numbers (CVE-2020-28362)
A number of.math/big.Int
methods (Div
,Exp
,DivMod
,Quo
,Rem
,QuoRem
,Mod
,ModInverse
,ModSqrt
,Jacobi
, andGCD
) can panic when provided crafted large inputs. For the panic to happen, the divisor or modulo argument must be larger than 3168 bits (on 32-bit architectures) or 6336 bits (on 64-bit architectures). Multiplemath/big.Rat
methods are similarly affected
math/big
パッケージは暗号関連のパッケージと密な関係にあるため,暗号関係の処理全般にインパクトがあると考えたほうがいいだろう。
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- 深刻度: 重要 (Score: 7.5)
基本評価基準 | 評価値 |
---|---|
攻撃元区分 | ネットワーク |
攻撃条件の複雑さ | 低 |
必要な特権レベル | 不要 |
ユーザ関与レベル | 不要 |
スコープ | 変更なし |
機密性への影響 | なし |
完全性への影響 | なし |
可用性への影響 | 高 |
cmd/go: arbitrary code execution at build time through cgo (CVE-2020-28366, CVE-2020-28367)
The go command may execute arbitrary code at build time when cgo is in use. This may occur when running go get on a malicious package, or any other command that builds untrusted code.
うわっ,ヤベ! 相変わらず cgo は(セキュリティ的に)鬼門だなぁ。
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
- 深刻度: 重要 (Score: 7.5)
基本評価基準 | 評価値 |
---|---|
攻撃元区分 | ネットワーク |
攻撃条件の複雑さ | 高 |
必要な特権レベル | 不要 |
ユーザ関与レベル | 要 |
スコープ | 変更なし |
機密性への影響 | 高 |
完全性への影響 | 高 |
可用性への影響 | 高 |
例によって…
Ubuntu の APT で管理している Go コンパイラは古いので,ダウンロードページからバイナリ(go1.15.5.linux-amd64.tar.gz
)を取ってきて手動でインストールすることを強く推奨する。
以下は手動での作業例。
$ cd /usr/local/src
$ sudo curl -L "https://golang.org/dl/go1.15.5.linux-amd64.tar.gz" -O
$ cd ..
$ sudo unlink go # 以前の Go が入っている場合
$ sudo tar xvf src/go1.15.5.linux-amd64.tar.gz
$ sudo mv go go1.15.5
$ sudo ln -s go1.15.5 go
$ go version # /usr/local/go/bin にパスが通っている場合
go version go1.15.5 linux/amd64
アップデートは計画的に。
参考図書
- プログラミング言語Go
- アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)
- 丸善出版 2016-06-20 (Release 2021-07-13)
- Kindle版
- B099928SJD (ASIN)
- 評価
Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想はこちら。