ほとんどのバージョンのRubyでのサービス拒否と潜在的な任意のコード実行

尊敬されるRubyコミュニティへの挨拶。

このニュースがまだHabréに載っていないのは奇妙ですが、昨日の早朝、Ruby開発者は浮動小数点値の解析時にヒープオーバーフローを報告しました。 この脆弱性にはコードCVE-2013-4164が割り当てられています。 また、このエラーは少なくともサービス拒否を引き起こす可能性があると警告していますが、ある程度の確率で、Rubyアプリケーションに任意のコードを実装できます。

脆弱なバージョンのリスト:


脆弱性の詳細


公式投稿の詳細は非常に少ないです。 文字列を浮動小数点値に変換するときに、特別に形成された文字列がヒープオーバーフローを引き起こす可能性があり、その結果、サービス拒否が発生し、任意のコードが実行される可能性があります。 脆弱なのは、この変換を使用するすべてのプログラムです。 最も一般的な例は、3番目のソースからJSONを受け入れて解析することです。

脆弱なコードは次のようになります。
untrusted_data.to_f 


ただし、外部ソースから浮動小数点値を作成するコードはすべて脆弱です。次に例を示します。
 JSON.parse untrusted_data 


解決策


開発者は、ruby 1.9.3 patchlevel 484、ruby 2.0.0 patchlevel 353、またはruby 2.1.0 preview2にアップグレードすることをお勧めします。 バージョン1.8は非推奨であり脆弱性の修正は予定されていません 。 Ruby 1.8ユーザーは、より新しいバージョンにアップグレードすることをお勧めします。

UPD:Ruby MRIのみが影響を受けます。 ルビニウスとJRubyは影響しません。

Source: https://habr.com/ru/post/J196298/


All Articles