diff --git a/ko/news/_posts/2026-04-21-erb-cve-2026-41316.md b/ko/news/_posts/2026-04-21-erb-cve-2026-41316.md new file mode 100644 index 0000000000..7412debcb9 --- /dev/null +++ b/ko/news/_posts/2026-04-21-erb-cve-2026-41316.md @@ -0,0 +1,41 @@ +--- +layout: news_post +title: "CVE-2026-41316: def_module / def_method / def_class를 통한 ERB @_init 역직렬화 가드 우회" +author: "k0kubun" +translator: "copilot" +date: 2026-04-21 07:51:00 +0000 +tags: security +lang: ko +--- + +CVE-2026-41316에 대한 보안 권고를 공개했습니다. + +## CVE-2026-41316: def\_module / def\_method / def\_class를 통한 ERB @\_init 역직렬화 가드 우회 + +ERB에서 역직렬화 취약점이 발견되었습니다. 이 취약점은 CVE 번호 [CVE-2026-41316](https://www.cve.org/CVERecord?id=CVE-2026-41316)으로 등록되었습니다. erb gem을 업그레이드하기를 추천합니다. + +### 영향 범위 + +신뢰할 수 없는 데이터에 대해 `Marshal.load`를 호출하고 `erb`와 `activesupport`가 모두 로드되어 있는 모든 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](https://github.com/TristanInSec)에게 감사를 표합니다. + +## 수정 이력 + +* 2026-04-21 07:51:00 (UTC) 최초 공개