Go 1.8.4 および 1.9.1 がリリース(セキュリティ・アップデート)

no extension

Go 言語コンパイラの 1.8.4 および 1.9.1 がリリースされている。

今回は2件のセキュリティ・アップデートがある。 ひとつは go get 時の問題で

By nesting a git checkout inside another version control repository, it was possible for an attacker to trick the “go get” command into executing arbitrary code. The go command now refuses to use version control checkouts found inside other version control systems, with an exception for git submodules (git inside git).

これって CVE-2017-1000117 と似たような問題かなぁ?

バージョン管理ツールの方は既に改修版が出てるんだけど, Go 言語コンパイラも対応しましたよ,ってことなんだろうか。 (git の submodule などとは別に)こういう入れ子構造のリポジトリの問題って根が深そうだなぁ。

もうひとつは smtp パッケージに関する問題だ。

In the smtp package, PlainAuth is documented as sending credentials only over authenticated, encrypted TLS connections, but it was changed in Go 1.1 to also send credentials on non-TLS connections when the remote server advertises that PLAIN authentication is supported. The change was meant to allow use of PLAIN authentication on localhost, but it has the effect of allowing a man-in-the-middle attacker to harvest credentials. PlainAuth now requires either TLS or a localhost connection before sending credentials, regardless of what the remote server claims.