CVE-2018-8779: UNIXServer, UNIXSocket에서 NUL 문자 삽입을 통한 의도치 않은 소켓 생성 취약점

루비에 내장되어 있는 소켓 라이브러리의 UNIXServer.open 메서드를 사용하여 의도치 않은 소켓을 생성할 수 있는 취약점이 발견되었습니다. 그리고 UNIXSocket.open 메서드에서는 의도치 않은 소켓 접근을 할 수 있는 취약점이 발견되었습니다. 이 취약점은 CVE 아이디 CVE-2018-8779로 할당되었습니다.

세부 내용

UNIXServer.open은 첫 번째 매개변수로 생성할 소켓의 경로를 넘겨받습니다. 만약 이 경로가 NUL(\0) 문자를 포함하는 경우, 이 메서드는 NUL 문자 직전까지를 경로명으로 인식합니다. 그러므로 만약 외부 입력을 이 메서드의 인수로 사용하는 경우, 공격자는 의도하지 않은 경로에 소켓 파일을 생성할 수 있습니다. 그리고 UNIXSocket.open도 마찬가지로 첫 번째 매개변수로 생성할 소켓의 경로를 받으며, UNIXServer.open과 마찬가지로 NUL 문자 확인을 하지 않습니다. 그러므로 만약 외부 입력을 이 메서드의 인수로 사용하는 경우, 공격자는 의도하지 않은 경로의 소켓 파일에 접근할 수 있습니다.

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

해당 버전

  • 루비 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
  • 리비전 62991 이전의 트렁크

도움을 준 사람

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

수정 이력

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