정부 레일즈 사이트, CVE 패치 불과 몇 시간 만에 해킹 시도
2026년 7월 29일 Ruby on Rails 8 이상의 ActiveStorage에서 심각한 원격 코드 실행 취약점(CVE-2026-66066, CVSS 9.5)이 공개되자, 보안 업체 Rietta는 당일 긴급 핫픽스를 적용했습니다. 그러나 다음 날 새벽 패치 8시간 만에 이미 공격이 시도되어, 공개 예정일보다 훨씬 앞서 익스플로잇 코드가 확산됐음을 보여줍니다. 패치 즉시 신속 대응의 중요성을 보여주는 사례입니다.
2026년 7월 29일 수요일 업무 시간 이후, Rietta는 Ruby on Rails 8 이상 버전의 구성 요소인 ActiveStorage에서 발견된 심각한 원격 코드 실행(RCE) 취약점의 영향을 받는 사이트 전체에 걸쳐 긴급 핫픽스 절차를 실행했습니다. 우리는 패치가 출시된 같은 날 공개된 최초의 GitHub 보안 어드바이저리를 기반으로 작업했습니다. 이 결함을 발견한 연구 팀 중 하나인 Ethiack은 이를 KindaRails2Shell(CVE-2026-66066)이라고 명명했으며, 7월 29일 당일 초기 공개 글을 올리고 다음 날인 7월 30일 전체 기술 심층 분석을 발표했습니다.
당일 업무 시간에 우리 팀이 이 취약점을 처음 검토했을 때는 심각도가 할당되지 않은 상태였고, 단지 Ruby on Rails 업데이트가 릴리스되었고 익스플로잇 세부 내용은 표준 엠바고 조건에 따라 비공개 상태였습니다. 하지만 저녁 무렵, 팀의 모니터링에서 CVSS 점수가 극도로 심각한 9.5/10까지 상승한 것을 확인했습니다. 이는 사실상 최악의 수준으로, 패치 지연이 곧 즉각적인 침해로 이어질 실존적 위험을 의미했습니다.
고객 배경
우리의 고객에는 HIPAA 적용 대상 기관과 주(州) 정부 기관이 포함되어 있으며, 이들 중 다수는 인프라 내에 Ruby on Rails 기반 커스텀 애플리케이션을 운영합니다. 이들은 데이터 유출 사고 시 상당한 규제적·평판적 손상에 직면할 수 있는 기관들로, 심각한 위협 앞에서는 일 분의 지연도 용납할 수 없습니다.
업무 시간 중 우리 팀은 공개된 세부 내용을 검토했지만 아직 심각도가 할당되지 않아, 일반 유지보수 창구에서 처리 가능한 일반 업데이트로 분류했습니다. 하지만 저녁에 이르러 팀의 지속적인 모니터링에서 CVSS가 9.5/10으로 상승한 것이 확인되었고, 우리는 핫픽스 비상사태를 선포했습니다. 이 패치들은 Rails 보안 팀이 "Active Storage 변형 처리에서의 임의 파일 읽기 및 원격 코드 실행 가능성"이라는 제목으로 취약점을 발표·공개한 바로 그날 적용되었습니다.
과정 자체는 간단했습니다. 팀은 영향을 받는 각 Rails 앱에 대해 풀 리퀘스트를 준비하고 bundle update activestorage rails 명령을 실행해 최신 패치 버전을 받아왔습니다. 그런 다음 로컬에서, 그리고 지속적 통합(CI)에서 전체 자동화 테스트 스위트를 실행했습니다. 다른 것이 망가지지 않았음을 확인하는 전체 테스트 스위트가 깨끗하게 통과한 후에만 프로덕션에 배포했습니다. 우리는 이메일로 영향을 받은 각 고객에게 조치 내용을 통보했고, 미 동부 표준시(EST) 기준 밤 11시 30분경 업무를 마쳤습니다.
정보 공개 엠바고는 이미 무의미해져 있었다
해당 어드바이저리는 기술적 공격 체인 설명을 보류하며 2026년 8월 28일 "까지" 전체 공개하겠다고 약속했습니다. 그러나 실제로 그 엠바고는 패치가 출시된 순간부터 기능적으로 무의미했으며, 이는 누군가 이를 위반해서가 아니었습니다. 수정 사항 자체, 즉 공개된 코드 diff는 애초에 엠바고 대상이 아니었고, 익스플로잇 방법에 대한 설명만 엠바고에 묶여 있었습니다.
그 설명조차 한 달을 버티지 못했습니다. Rails 프로젝트는 바로 다음 날인 7월 30일 오후 6시 25분(EST)에 기술적 세부 내용을 담은 포렌식 도구를 GitHub에 공개했습니다. Ethiack도 다음 날 아침인 7월 31일 오전 6시 56분(EDT)에 전체 기술 보고서를 발표했습니다. 두 자료 모두 원래 명시된 엠바고 날짜보다 약 4주 앞선 것이었습니다.
Rapid7의 사고 추적 자료도 그 이유를 독립적으로 확인해 줍니다. Rails가 포렌식 도구를 계획보다 앞서 공개한 것은 여러 연구자들이 이미 공격 방법을 리버스 엔지니어링하여 개념 증명(PoC) 코드를 공개했기 때문이며, 엠바고는 Rails나 최초 발견 연구자들의 의사와 무관하게 무너지고 있었습니다.
우리 고객에 대한 첫 공격은 그 모든 것보다 이릅니다. 공격은 7월 30일 오전 7시 10분 25초(EST), 즉 우리가 패치를 적용한 지 8시간 1분 후에, Rails 자체 포렌식 도구가 공개되기 11시간 이상 전, Ethiack의 보고서가 나오기 거의 하루 전에 도달했습니다. 처음에 우리는 해당 페이로드 제작자가 패치 출시 후 몇 시간 만에 독자적으로 패치를 역분석(patch-diffing)한 것으로 추정했습니다. 그러나 새로운 증거는 다른, 더 단순한 설명을 가리키고 있