LHAに脆弱性 いつか起きると思っていた

http://oku.edu.mie-u.ac.jp/~okumura/blog/node/1047
http://slashdot.jp/security/article.pl?sid=06/09/22/1619245
via http://d.hatena.ne.jp/y-hamigaki/20060924#1159070654
LHA等の解凍プログラムを見たり書いていると感じると思うのだが、圧縮されたファイルから読み込んでくる一つ一つのデータに対してチェックを行わない。*1
確かに、LHAが作られた当時はインターネットのようなアクセス手段が無かったので、スタンドアローンな環境で実行するのにそのような問題は考えもしなかったのだろうと思う。想定外という事か?
また、この手のプログラムは高速性が要求されるだけに、昔のPCであればなおさら無駄なチェックは行いたくなかったのだろうと思う。
今の時代、PCの処理性能は格段に上がり多数のチェック処理を入れてもある程度は我慢できると思うが、こういうチェックもしなくてはならないコーディングするとなると億劫だ。
むしろ、ガシガシにセキュリティーチェックし、高速に動作するように最適化したソースコードをリファレンスコードとしてNYSLで公開するとかすれば良いのではないかと感じている。*2


さて、となれば・・・
http://d.hatena.ne.jp/studiokingyo/20060617#p1
で紹介したような本に掲載されている方法を元にこの脆弱性に関しても頭に入れつつコーディングしなければ完全なプログラムにはならないわけだ。
アルゴリズムをコーディングする人の仕事は難しい限りで・・・
私のライブラリも後で見直しをしなくてはと感じた。

*1:例えば、状態遷移がおかしくならないようにとかデータの長さが超えないように だとか・・・

*2:だが、こうなるとまたそのコードに脆弱性が見つかった時に同じ問題が起きないともいえないのだが・・・