루비에 내장되어 있는 소켓 라이브러리의 `UNIXServer.open` 메서드를 사용하여 의도치 않은 소켓을 생성할 수 있는 취약점이 발견되었습니다.
그리고 `UNIXSocket.open` 메서드에서는 의도치 않은 소켓 접근을 할 수 있는 취약점이 발견되었습니다.
이 취약점은 CVE 아이디 [CVE-2018-8779](http://cve.mitre.org/cgi-bin/cvename.cgi?name=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](https://hackerone.com/ooooooo_q)가 보고했습니다.

## 수정 이력

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