Go 1.17.2 のリリース【セキュリティ・アップデート】
今回は1件の脆弱性修正を含んでいる。
CVE-2021-38297
というわけで wasm_exec.js
ファイルの置き換えが必要らしい。
1.17.1 の wasm_exec.js
ファイルとで diff をとってみたら
$ diff -u go1.17.1/misc/wasm/wasm_exec.js go1.17.2/misc/wasm/wasm_exec.js
--- go1.17.1/misc/wasm/wasm_exec.js 2021-09-10 00:41:20.000000000 +0900
+++ go1.17.2/misc/wasm/wasm_exec.js 2021-10-08 04:58:29.000000000 +0900
@@ -567,6 +567,13 @@
offset += 8;
});
+ // The linker guarantees global data starts from at least wasmMinDataAddr.
+ // Keep in sync with cmd/link/internal/ld/data.go:wasmMinDataAddr.
+ const wasmMinDataAddr = 4096 + 4096;
+ if (offset >= wasmMinDataAddr) {
+ throw new Error("command line too long");
+ }
+
this._inst.exports.run(argc, argv);
if (this.exited) {
this._resolveExitPromise();
とチェック用の条件文が追加されているだけのようだ。
以下は CVSSv3.1 による評価。
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- 深刻度: 緊急 (Score: 9.8)
基本評価基準 | 評価値 |
---|---|
攻撃元区分 | ネットワーク |
攻撃条件の複雑さ | 低 |
必要な特権レベル | 不要 |
ユーザ関与レベル | 不要 |
スコープ | 変更なし |
機密性への影響 | 高 |
完全性への影響 | 高 |
可用性への影響 | 高 |
例によって…
Ubuntu の APT で管理している Go コンパイラは古いので,ダウンロードページからバイナリ(go1.17.2.linux-amd64.tar.gz
)を取ってきて手動でインストールすることを強く推奨する。
以下は手動での作業例。
$ cd /usr/local/src
$ sudo curl -L "https://golang.org/dl/go1.17.2.linux-amd64.tar.gz" -O
$ cd ..
$ sudo unlink go # 以前の Go が入っている場合
$ sudo tar xvf src/go1.17.2.linux-amd64.tar.gz
$ sudo mv go go1.17.2
$ sudo ln -s go1.17.2 go
$ go version # /usr/local/go/bin にパスが通っている場合
go version go1.17.2 linux/amd64
アップデートは計画的に。
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。