CVE-2018-8778: String#unpack의 범위 외 읽기 취약점
작성자: usa (2018-03-28)
번역자: shia
루비의 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) 최초 공개
최근 소식
Ruby 4.0.0 preview2 릴리스
Ruby 4.0.0-preview2 릴리스를 알리게 되어 기쁩니다. Ruby 4.0은 유니코드 버전을 17.0.0으로 업데이트했으며, 더 많은 것들이 있습니다.
작성자: naruse (2025-11-17)
Ruby 3.3.10 릴리스
Ruby 3.3.10이 릴리스되었습니다.
작성자: nagachika (2025-10-23)
RubyGems 저장소 소유권 이관
Ruby 커뮤니티 여러분께,
작성자: matz (2025-10-17)
Ruby 3.4.7 릴리스
Ruby 3.4.7이 릴리스되었습니다.
작성자: k0kubun (2025-10-07)