작성자: usa (2018-10-17)
번역자: shia
Array#pack
과 String#unpack
의 일부 형식에서 원본 데이터의 tainted 플래그가 반환되는 값에 전파되지 않았습니다.
이 취약점은 CVE 아이디 CVE-2018-16396으로 할당되었습니다.
세부 내용
Array#pack
메서드에서는 인수로 지정된 형식에 따라서 수신자인 배열의 내용을 문자열로 변환하여 반환합니다.
만약 수신자가 오염된 객체를 가지고 있는 경우, 반환하는 문자열도 오염되어 있어야 합니다.
수신자를 배열로 변환하는 String#unpack
메서드 역시 자신의 tainted 플래그를 변환 후의 배열에 전파해야 합니다.
하지만 B
, b
, H
, h
형식을 사용하는 경우, 오염 정보가 전파되지 않았습니다.
그러므로 만약 스크립트가 신뢰할 수 없는 입력을 Array#pack
이나 String#unpack
을 통해 해당 형식으로 처리하고, 신뢰성을 오염 플래그로 확인하고 있었다면, 그 처리는 동작하지 않았을 가능성이 있습니다.
해당 버전을 사용하는 모든 사용자는 즉시 업그레이드하기 바랍니다.
해당 버전
- 루비 2.3 버전대: 2.3.7 이하
- 루비 2.4 버전대: 2.4.4 이하
- 루비 2.5 버전대: 2.5.1 이하
- 루비 2.6 버전대: 2.6.0-preview2
- 리비전 65125 이전의 트렁크
도움을 준 사람
이 문제는 Chris Seaton이 보고했습니다.
수정 이력
- 2018-10-17 23:00:00 (KST) 최초 공개