PowerShell Core 6.2.2登場
Microsoftは2019年7月17日、「Microsoft Security Advisory CVE-2019-1167: Windows Defender Application Control Security Feature Bypass Vulnerability」において、PowerShell Core 6.1およびPowerShell Core 6.2にセキュリティ脆弱性が存在すると伝えた。このセキュリティ脆弱性を利用されると、PowerShell Core制限付き言語モードが回避される危険性があるとされている。
Windows Defender Application Control (WDAC)のセキュリティ機能をバイパスすることができるというもので、攻撃者がWDACの実施を回避できる可能性があるとしている。すでに修正したバージョンが公開されており、Microsoftは修正されたバージョンにアップデートすることを推奨している。修正が実施されたバージョンは次のとおり。
- PowerShell Core 6.2.2
- PowerShell Core 6.1.5
LinuxでSnap経由でPowerShell Coreをインストールしてある場合には自動的に修正されたバージョンへアップデートが実施されるが、Windows 10またはmacOSを利用している場合には自分でアップデート作業を実施する必要がある。今回はこの修正されたバージョンへアップデートする方法を取り上げる。
Windows 10
Windows 10では、まずインストールされているPowerShell Core 6をアンインストールする。設定アプリケーションを起動し、「アプリ」を選択する。
表示されるアプリケーション一覧から「PowerShell 6 x64」を選択肢、「アンインストール」をクリックする。
「Releases - PowerShell/PowerShell|GitHub」からPowerShell-6.2.2-win-x86.msiをダウンロードして実行する。インストールウィザードが起動するので、手順に従ってインストールを行う。
インストールが完了したら次のようにPowerShell Coreを実行してバージョンを確認する。
macOS Mojave
macOSでは、まずインストールされているPowerShell Core 6を次のようにアンインストールする。
PowerShell Core 6をアンインストール
$ sudo rm -rf /usr/local/bin/pwsh /usr/local/microsoft/powershell
「Releases - PowerShell/PowerShell|GitHub」からpowershell-6.2.2-osx-x64.pkgをダウンロードしてから、次のコマンドを実行する。
PowerShell Core 6.2.2をインストール
$ sudo installer -pkg powershell-6.2.2-osx-x64.pkg -target /
installer: Package name is PowerShell - 6.2.2
installer: Upgrading at base path /
installer: The upgrade was successful.
$
インストールが完了したら次のようにPowerShell Coreを実行してバージョンを確認する。
Ubuntu 18.04 LTS
Snap経由でPowerShell Core 6をインストールしたのであれば、次のように自動的にアップデートが実施されている。
Snap管理下のPowerShell Core 6は自動更新
$ snap list
Name Version Rev Tracking Publisher Notes
core 16-2.39.3 7270 stable canonical✓ core
fast 0.0.4 4 stable ddooo -
hello 2.10 38 stable canonical✓ -
powershell 6.2.2 36 stable microsoft-powershell✓ classic
powershell-preview 7.0.0-preview.1 23 stable microsoft-powershell✓ classic
tree 1.8.0+pkg-3fd6 18 stable brlin -
$
なお、Snap経由でPowerShell Core 6をインストールする場合には次のようにコマンドを実行する。
PowerShell Core 6をSnap経由でインストール
sudo apt update
sudo apt upgrade
sudo apt install snapd
sudo snap install powershell
Windows 10とパッケージ管理
PowerShell CoreのマザープラットフォームはWindowsなのだが、ここでわかるように運用という面ではLinuxがもっとも簡単だ。Snap経由でインストールしておけば常に最新版にアップデートされる。オペレーティングシステムごとにパッケージ管理の方法が異なるのでどうしようもないところなのだが、今のところWindowsとmacOSでは手動でアップデートし続ける必要がある。
Microsoftが最終的にどのような方式でPowerShell 7をWindows 10以降のプラットフォームに取り込んでいくのかはわからない。しかし、現状のままではあまりにも面倒だ。かといって、月1のアップデートでの提供となると、セキュリティアップデートとしては少々遅すぎるような気もする。開発版の提供と正式版の提供を並列化する必要があるなど、Windows 10におけるPowerShell Core/PowerShell 7の提供方法は今後変わっていく可能性があり、しばらく注目しておく必要がありそうだ。