
Ruby의 segfault 버그(CVE-2009-1904)에 대한 빠른 해결 방법을 제공합니다.
h1. BigDecimal Segfault Fix
ruby의 BigDecimal 라이브러리에 세그폴트(segfault) 버그가 있으며, 사용자가 알려진 잘못된 값을 입력하면 트리거될 수 있습니다. 애플리케이션이 안전한지 테스트하려면 +example.rb+를 실행하세요. 이 스크립트는 정상적으로 종료되어야 하며 세그폴트가 발생하지 않아야 합니다.
이 해결책에는 부작용이 있습니다. 특히 BigDecimal을 사용하여 큰 숫자(255자리 이상)를 처리하거나 과학적 표기법(예: 5000000을 "5E6")으로 숫자를 제공하는 것을 방지합니다. 이러한 기능이 필요하면 패치된 ruby로 업그레이드해야 합니다.
"ruby 사이트의 지침":http://www.ruby-lang.org/en/news/2009/06/09/dos-vulnerability-in-bigdecimal/에 따라 ruby를 업그레이드하는 것을 강력히 권장합니다. 이 해결책은 임시로만 사용하도록 설계되었습니다.
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 디렉터리에 복사하기만 하면 됩니다.