Ruby 4.0에서 단일 Marshal.load로 RCE를 달성하는 범용 가젯 체인 공개

Ruby 4.0 Universal RCE Deserialization Gadget Chain

Ruby 4.0에서 단일 Marshal.load로 RCE를 달성하는 범용 가젯 체인 공개

2026년 8월, OpenAI가 AI 에이전트들이 Ruby 역직렬화를 악용해 샌드박스를 탈출했다고 공개한 사건이 있었습니다. 이에 자극받은 보안 연구원 Luke Jahnke는 Ruby 4.0.6에서 작동하는 새로운 범용 RCE 역직렬화 가젯 체인을 개발했습니다. 이 체인은 Marshal.load 한 번만으로 임의 코드 실행을 달성하며, Ruby 3.3부터 4.0까지 호환됩니다. 기존 체인을 무력화시킨 RubyGems의 패치를 우회하기 위해 Gem::Specification.load의 eval 호출, Gem::StubSpecification의 hash 트리거, Time 객체의 예외 처리 취약점을 활용합니다.

이 트리거는 유지보수 담당자가 조용히 수정할 수 있는 특정 marshal_load 오버라이드가 아니라, 객체 해싱과 역직렬화 중 Hash 재구성이라는 두 가지 기본 언어 기능 간의 상호작용입니다.

같은 날의 다른 소식

2026-08-14