작성자: tenderlove (2013-11-22)
번역자: SeungKyun Nam
루비에서 부동소수점 숫자를 파싱할 때 오버플로가 있었습니다. 본 취약점은 CVE에 식별자 CVE-2013-4164로 할당되었습니다.
세부사항
문자열을 부동소수점 값으로 변환할 때, 의도적으로 조작된 문자열이 힙 오버플로를 일으킬 수 있습니다. 이것은 세그멘테이션 폴트와 가능한 의도적 코드 실행을 통해 서비스 거부(DoS)로 이어질 수 있습니다. 기원을 알 수 없는 입력을 부동소수점 값으로 변환하는(특히 JSON을 입력받을 때 흔한) 모든 프로그램은 취약합니다.
취약한 코드는 다음과 같은 형태입니다:
untrusted_data.to_f
그러나 외부 데이터로부터 부동소수점 값을 생성하는 모든 코드는 취약합니다. 다음과 같은 것들입니다:
JSON.parse untrusted_data
이 버그는 CVE-2009-0689와 비슷한 것입니다.
영향을 받는 릴리스를 실행하는 모든 사용자들은 루비의 수정된 버전으로 업그레이드 해야 합니다.
영향을 받는 버전
- 루비 1.8 모든 버전
- 루비 1.9.3 패치레벨 484 이전의 루비 1.9의 모든 버전
- 루비 2.0.0 패치레벨 353 이전의 루비 2.0의 모든 버전
- 루비 2.1.0 프리뷰2 이전의 루비 2.1의 모든 버전
- 트렁크 리비전 43780 이전
해결책
모든 사용자들에게 루비 1.9.3 패치레벨 484, 루비 2.0.0 패치레벨 353 혹은 루비 2.1.0 프리뷰2로 업그레이드할 것을 권고합니다.
루비 1.8 시리즈 혹은 그 이전의 릴리스는 이미 폐기되었음을 기억해 주십시오. 해당 버전에 대한 새로운 수정된 버전을 릴리스할 계획은 없습니다. 이러한 버전의 사용자들은 지원되지 않는 릴리스에 대한 보안 수정의 지속적인 가용성을 보장할 수 없으므로 최대한 빨리 업그레이드하는 것이 좋습니다.
크레딧
본 이슈를 보고해 주신 Charlie Somerville께 감사드립니다!
문서이력
- 2013-11-22 04:00:00 UTC에 최초로 발행되었습니다
- 2013-11-22 06:46:00 UTC에 이차로 발행되었습니다