CVE-2019-15845: File.fnmatch 및 File.fnmatch?의 NUL 주입 취약점

루비 빌트인 메서드(File.fnmatchFile.fnmatch?)의 NUL 주입 취약점이 발견되었습니다. 경로 패턴 파라미터를 변경할 수 있는 공격자가 프로그램 저자의 의도에 반해 경로 매칭을 통과할 수 있도록 악용할 수 있습니다. 이 취약점에 CVE-2019-15845가 할당되었습니다.

세부 내용

빌트인 메서드 File.fnmatch와 그 별칭 File.fnmatch?는 첫 번째 파라미터로 경로 패턴을 받습니다. 패턴에 NUL 문자(\0)가 포함되었을 경우, 메서드는 NUL 바이트 직전에서 경로 패턴이 끝났다고 인식합니다. 이 때문에 스크립트에서 외부 입력을 패턴 인자로 사용하면, 공격자가 두 번째 인자인 경로를 잘못 매칭되도록 만들 수 있습니다.

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

해당 버전

  • 루비 2.3 이하의 모든 버전
  • 루비 2.4 버전대: 루비 2.4.7 이하
  • 루비 2.5 버전대: 루비 2.5.6 이하
  • 루비 2.6 버전대: 루비 2.6.4 이하
  • 루비 2.7.0-preview1
  • a0a2640b398cffd351f87d3f6243103add66575b 커밋 이전의 master

감사의 글

이 문제를 발견해 준 ooooooo_q에게 감사를 표합니다.

수정 이력

  • 2019-10-01 11:00:00 (UTC) 최초 공개