CVE-2026-41316: def_module / def_method / def_class를 통한 ERB @_init 역직렬화 가드 우회

작성자: k0kubun (2026-04-21)
번역자: copilot

CVE-2026-41316에 대한 보안 권고를 공개했습니다.

CVE-2026-41316: def_module / def_method / def_class를 통한 ERB @_init 역직렬화 가드 우회

ERB에서 역직렬화 취약점이 발견되었습니다. 이 취약점은 CVE 번호 CVE-2026-41316으로 등록되었습니다. erb gem을 업그레이드하기를 추천합니다.

영향 범위

신뢰할 수 없는 데이터에 대해 Marshal.load를 호출하고 erbactivesupport가 모두 로드되어 있는 모든 Ruby 애플리케이션은 임의 코드 실행에 취약합니다. 다음을 포함합니다.

  • 신뢰할 수 없는 직렬화 데이터를 가져오는 Ruby on Rails 애플리케이션 – 캐싱, 데이터 가져오기, IPC에 Marshal.load를 사용하는 모든 Rails 앱(모든 Rails 앱은 ActiveSupport와 ERB를 모두 로드함)
  • 신뢰할 수 없는 직렬화 데이터를 가져오는 Ruby 도구 – 캐싱, 데이터 가져오기, IPC에 Marshal.load를 사용하는 모든 도구
  • 레거시 Rails 앱 (7.0 이전) – 쿠키 세션 직렬화에 여전히 Marshal을 사용하는 앱

세부 내용

ERB는 신뢰할 수 없는 데이터에 대해 Marshal.load로 ERB 객체를 재구성할 때 코드 실행을 방지하기 위해 @_init 가드를 구현합니다. 그러나 ERB#def_method, ERB#def_module, ERB#def_class는 이 가드를 확인하지 않고 템플릿 소스를 평가하므로, Marshal.load에 전달되는 데이터를 제어하는 공격자가 보호를 우회하여 임의 코드를 실행할 수 있습니다. 특히 def_module은 인수를 받지 않으므로, 역직렬화 가젯 체인의 일부로 간단히 호출할 수 있습니다.

erb gem을 4.0.3.1, 4.0.4.1, 6.0.1.1, 6.0.4 이상으로 업데이트하세요.

해당 버전

  • erb gem 6.0.3 이하

도움을 준 사람

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

수정 이력

  • 2026-04-21 07:51:00 (UTC) 최초 공개

최근 소식

Ruby 3.2.11 릴리스

Ruby 3.2.11이 릴리스되었습니다. 이번 릴리스에는 CVE-2026-27820을 해결하는 zlib gem의 업데이트가 포함되어 있습니다.

작성자: hsbt (2026-03-27)

Ruby 3.3.11 릴리스

Ruby 3.3.11이 릴리스되었습니다. 이번 릴리스에는 CVE-2026-27820을 해결하는 zlib gem의 업데이트와 일부 버그 수정이 포함되어 있습니다.

작성자: hsbt (2026-03-26)

뉴스 더보기...