我輩はブロガーではない。ネタもまだない

SASとかDelphiあたりの人様の役に立たないネタを提供します

「PrintNightmare」脆弱性(CVE-2021-34527)の対応で、PoweShellのGet-EventLogがコケる

サーバAでサーバBのイベントログを取得するPowerShellのコードがあります。

以下は検証のためのコードです

Get-EventLog -ComputerName "SVNAME" -LogName "Application" -After "2021/07/01 00:00:00" -Before "2021/07/31 00:00:00" -EntryType "Error","Warning" `
           | Select-Object EntryType,TimeGenerated,EventID,Source,MachineName | epcsv "$PSScriptRoot\evt.csv" -Encoding default

これが、こんなエラーを吐いて止まります
f:id:japelin:20210802104525p:plain


先月までは問題なく動いていましたので、PrintNightmare対応のためにインストールしたKB5004948が関係しているような気がします。

f:id:japelin:20210802104636p:plain
サーバA
f:id:japelin:20210802115535p:plain
サーバB

ただ、このパッチはリモートコードが実行される脆弱性に対するものですから、字面通りに受け取るなら、サーバBで実行したスクリプトに対してサーバAが応答を拒否、という結果になりそうな気がするのですが。


検証のため逆で実行してみましょう。

f:id:japelin:20210802110505p:plain
サーバBからサーバAに対して実行した結果


同じ結果になりました。


さらに、KB5004948をインストールしていないサーバB→サーバCを試したところ、エラーなく完了しました。

このことから推測するに、保護レベルが同一でない場合は、上記のエラーになってしまうようです。

<結果>

  • パッチ適用→パッチ適用:OK
  • パッチ未適用→パッチ未適用:OK
  • パッチ適用→パッチ未適用:エラー
  • パッチ未適用→パッチ適用:エラー


他にも動かなくなるものがありそうです。

(サーバA,B,CはすべてWindows Server2016)