
Ruby में segfault बग के लिए एक त्वरित कार्यसमाधान प्रदान करता है (CVE-2009-1904)
h1. BigDecimal Segfault Fix
Ruby के big decimal लाइब्रेरी में एक segfault बग है जिसे उपयोगकर्ता ज्ञात खराब मान प्रदान करके ट्रिगर कर सकते हैं। यदि आप जाँचना चाहते हैं कि आपका एप्लिकेशन सुरक्षित है या नहीं, तो +example.rb+ चलाएँ। यह स्क्रिप्ट सामान्य रूप से बाहर निकलनी चाहिए, segfault नहीं होना चाहिए।
समाधान के नकारात्मक दुष्प्रभाव हैं। विशेष रूप से, यह आपको बड़ी संख्याओं (255 अंकों से अधिक) से निपटने के लिए BigDecimal का उपयोग करने या संख्याओं को वैज्ञानिक संकेतन (जैसे "5E6" 5000000 के लिए) प्रदान करने से रोकता है। यदि आपको उन सुविधाओं की आवश्यकता है, तो आपको पैच किए गए ruby में अपग्रेड करना होगा।
आपको दृढ़ता से सलाह दी जाती है कि "ruby साइट पर दिए गए निर्देशों" के अनुसार ruby को अपग्रेड करें:http://www.ruby-lang.org/en/news/2009/06/09/dos-vulnerability-in-bigdecimal/। यह समाधान केवल अस्थायी उपयोग के लिए है।
h2. प्रभावित ruby संस्करण:
h3. 1.8 श्रृंखला
h3. 1.9 श्रृंखला
h2. स्थापना निर्देश
h3. Gem स्थापना
यह समाधान github से एक gem के रूप में उपलब्ध है। इसे स्थापित करने के लिए आपको निम्नलिखित कमांड चलाने चाहिए:
$ gem sources -a http://gems.github.com $ sudo gem install NZKoz-bigdecimal-segfault-fix
फिर अपने कोड में जोड़ें:
gem 'NZKoz-bigdecimal-segfault-fix' require 'bigdecimal-segfault-fix'
h3. Rails Initializer स्थापना
Rails एप्लिकेशन में इस समाधान को लागू करने के लिए आप बस +bigdecimal-segfault-fix.rb+ फ़ाइल को अपने config/initializers निर्देशिका में कॉपी कर सकते हैं।