CVE-2018-8778: String#unpack의 범위 외 읽기 취약점

루비의 String#unpack 메소드에서 공격자가 배열 범위 바깥을 읽을 수 있는 취약점이 발견되었습니다. 이 취약점은 CVE 아이디 CVE-2018-8778로 할당되었습니다.

세부 내용

String#unpack은 인수로 포맷 식별자를 받으며, 식별자 @를 사용해 지정한 위치의 데이터를 읽어올 수 있습니다. 이때 @와 함께 커다란 숫자를 넘겨주는 경우, 그 숫자는 음수로 취급되어 문자열 범위 외의 데이터에 접근하는 것이 가능해집니다. 그러므로 외부 입력을 String#unpack의 인수로 지정하는 경우, 공격자는 힙 상의 데이터를 읽을 수 있습니다.

해당 버전을 사용하는 모든 사용자는 즉시 업그레이드하기 바랍니다.

해당 버전

  • 루비 2.2 버전대: 2.2.9 이하
  • 루비 2.3 버전대: 2.3.6 이하
  • 루비 2.4 버전대: 2.4.3 이하
  • 루비 2.5 버전대: 2.5.0 이하
  • 루비 2.6 버전대: 2.6.0-preview1
  • 리비전 62992 이전의 트렁크

도움을 준 사람

이 문제는 aerodudrizzt가 보고했습니다.

수정 이력

  • 2018-03-28 23:00:00 (KST) 최초 공개