まとめると、今回のPerl脆弱性騒ぎには二つの問題があったわけです。
- Perlのprintf関数において、format stringに悪意のある値を与える事で任意のコードを実行されてしまう脆弱性 (Perl format string integer wrap vulnerability)
- 開発者が(おそらくは)意図せず、printfによるFormat string展開される関数を利用していた。Webmin等がそれに当たる。これはSys::Syslog-0.09等では(開発者の意図通り)ただの文字列として扱われるように仕様変更されている。
これを混同してしまわないように要注意ですね。
情報:
- セキュリティホール memo
- id:inuz:20051204 inuzの日記 - Perl に interger overflow 脆弱性発見
- id:fu7mu4:20051207:1133948993 fu7mu4の日記 - Webminやuserminの脆弱性なんだけど、Perl5.9.2/5.8.6の危険性について。
- Matzにっき(2005-12-07) Perl format string integer wrap vulnerability
Rubyでも同様の脆弱性が発見された……というだけでなく、修正方法によってはコンパイラ(gcc4)の最適化が対策を回避してしまうことがあるようです。[追記: 2005/12/08 22:38]