https://munet.x0.to/create/lzh/other07.htmlこんな問題がバズっておりました。
ソフトウェア作者側で取れる対策としては、
暫定的ではありますが、
くだんのANSI APIをUnicode APIに切り替える事が考えられます。
っつーか、適切なアドバイザリが存在しない(ように見受けられる)以上、
他にやることはなさそうです。
なお、利用しているライブラリがANSI API使ってるのであれば、残念でした。
やることはありますが対策は取れません。
そもそもANSI API使っていなければ良いんですが、
お生憎様、HSP3で作成したmlc2はモロに使っております。
今回見直す必要があるのは、#uselib関係です。
「なんとかA」で終わる関数を探し出し、
「なんとかW」に切り替えます。
念のためですが、該当の関数が存在するかは絶対ぐぐって確認してください。
例えば"GetModuleFileNameA"は"GetModuleFileNameW"になります。
注意点として、ANSIではなく
UTF-16が引数となってますんで、
関数に引数として文字列を渡す場合は忘れずにcnvstowをかまし、
関数から返り値として文字列を受け取る場合は同様にcnvwtosをかまします。
この関数はHSP3.6標準なんで、何もしなくても利用可能です。
以上でmlc2上での対策は完結しました。
とりあえずしばらく使用して様子をみますが、
他のソフトウェアでは別の問題が発生する場合もあります。幸運を祈ります。
として対策をしたものの、実際にmlc2を利用して本脆弱性を悪用する場合は
PCを乗っ取る必要があるんで、そもそもこんな対策を打つ必要はないように見受けられます。
しかし万が一のこともありますし、セキュリティの常識が今後変わる可能性もありますんで、
やっといて損はないと思います。