Microsoft Internet Explorer の未修正の脆弱性 (CVE-2020-0674) に関する注意喚起の話。
MSから提示されている回避策は、everyoneからjscript.dllへのアクセス権を奪うこと。
Restrict access to JScript.dll
For 32-bit systems, enter the following command at an administrative command prompt:
takeown /f %windir%\system32\jscript.dll cacls %windir%\system32\jscript.dll /E /P everyone:NFor 64-bit systems, enter the following command at an administrative command prompt:
takeown /f %windir%\syswow64\jscript.dll cacls %windir%\syswow64\jscript.dll /E /P everyone:N takeown /f %windir%\system32\jscript.dll cacls %windir%\system32\jscript.dll /E /P everyone:NHow to undo the workaround
For 32-bit systems, enter the following command at an administrative command prompt:
cacls %windir%\system32\jscript.dll /E /R everyoneFor 64-bit systems, enter the following command at an administrative command prompt:
cacls %windir%\system32\jscript.dll /E /R everyone cacls %windir%\syswow64\jscript.dll /E /R everyone
適用すると、JScriptの実行にjscript.dllを使用しているWSHではJScriptが実行できなくなってしまう。
個人的にとても困る。

なので、WSHがJScriptを実行する際に参照するレジストリを書き換えて、今回の脆弱性の対象にはなっていないjscript9.dllを利用するように変更してみる。
レジストリの書き換えは自己責任で!※おまじない
それにはHKEY_LOCAL_MACHINE\SOFTWARE\Classes\JScript\CLSIDの(既定)に指定するCLSIDを{16d51579-a30b-4c8b-a276-0ff4dc41e755}へ書き換える。regファイル的には以下の通り。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JScript\CLSID]
@="{16d51579-a30b-4c8b-a276-0ff4dc41e755}"
これで上記回避策を適用した後でもJScriptを実行できるようになる。

WScript.Echo(ScriptEngine() + '/' + [ScriptEngineMajorVersion(), ScriptEngineMinorVersion(), ScriptEngineBuildVersion()].join('.'));
ちなみにレジストリ書き換え前にjscript.dllで表示されるバージョンは5.8.16384だった。
もし不都合がありjscript.dllへ戻すときはCLSIDを元に戻せばよい。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JScript\CLSID]
@="{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}"