ITmedia エンタープライズ:なぜアニメカーソル脆弱性を見逃したのか――MSのSDLチームが新ブログ

アニメーションカーソルの脆弱性Windows2000から使われているコードで、memcpyが影響していたそうです。

「アニメーションカーソルの脆弱性からは学ぶべきことが非常に多かった」とハワード氏。同氏によると、問題のコードはかなり古いもので、SDL以前の Windows 2000から使われていた。Windows Vistaのプロセスでは特定のAPIを禁止し、14万以上の関数に変更を加えて安全な関数を利用するようにしたが、「memcpy」はその対象になっていなかったという

memcpyが使われているものは同じような影響を受ける必要があったリスるんかなぁ。影響でかそうw

SDLは完璧ではなく、今後も完璧になることはないだろうとハワード氏は述べ、「われわれにはまだやるべきことがあり、それが今回の脆弱性で示された」と振り返っている。今後は新しいコードで「memcpy」を禁止した場合の影響を検討するなどの措置を取り、今回の教訓に従い、必要に応じて社内教育の向上を図る方針だという。

ockeghemさんとhaswegawayosukeさんにフォロー貰いました。

よくわかってなかったことバレバレw。memcpy_sという安全なmemcpyの代替え関数を使うようにしているはずだが、memcpyが徹底し切れてなかった、、、ってことらしい。

# ockeghem 『memcpyが危険というのはわかりますが、memcpy禁止するんだったら、もはやC言語を使うなということのような気がしますね。』(2007/04/28 23:22)
# hasegawayosuke 『MS的にはmemcpyを始め危険な関数は全て安全なバージョンを用意しており(memcpyの代替としてmemcpy_s)、そちらを使うように徹底しているはずが、なぜかmemcpyに関しては徹底されていなかった、ということだと思います。』(2007/04/29 00:04)