CVE-2024-27280: StringIO에서 버퍼 초과 읽기 취약점

버퍼 초과 읽기 취약점에 대한 보안 수정이 포함된 StringIO gem 버전 3.0.1.1과 3.0.1.2를 릴리스했습니다. 이 취약점에는 CVE 식별자 CVE-2024-27280이 할당되었습니다.

세부 내용

Ruby 3.0.x부터 3.0.6까지, 3.1.x부터 3.1.4까지 함께 배포된 StringIO 3.0.1에서 문제가 발견되었습니다.

StringIO의 ungetbyteungetc 메서드는 문자열의 끝을 넘어서도 읽을 수 있으며, 이어서 호출되는 StringIO.gets는 메모리의 값을 반환할 수 있습니다.

이 취약점은 StringIO 3.0.3과 그 이후, Ruby 3.2.x와 그 이후 버전에는 영향이 없습니다.

권장 조치

StringIO gem을 3.0.3이나 그 이상으로 업데이트하는 것이 좋습니다. 이전 Ruby 버전대에 포함된 버전과의 호환성을 보장하기 위해 다음과 같이 업데이트할 수 있습니다.

  • Ruby 3.0 사용자: stringio 3.0.1.1로 업데이트
  • Ruby 3.1 사용자: stringio 3.0.1.2로 업데이트

주의: StringIO 3.0.1.2는 이 취약점뿐만 아니라 [Bug #19389]의 버그 수정도 포함하고 있습니다.

gem update stringio를 사용하여 업데이트할 수 있습니다. bundler를 사용하는 경우 gem "stringio", ">= 3.0.1.2"Gemfile에 추가하세요.

해당 버전

  • Ruby 3.0.6과 그 이하
  • Ruby 3.1.4와 그 이하
  • StringIO gem 3.0.1과 그 이하

도움을 준 사람

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

수정 이력

  • 2024-04-11 12:50:00 (UTC) StringIO의 해당 버전 수정(3.0.2 -> 3.0.1)
  • 2024-03-21 04:00:00 (UTC) 최초 공개