루비온레일즈 이미지 업로드만으로 서버 파일 유출, CVSS 9.5 긴급 취약점 발견

실시간 키워드

2022.08.01 00:00 기준

루비온레일즈 이미지 업로드만으로 서버 파일 유출, CVSS 9.5 긴급 취약점 발견

위키트리 2026-07-30 11:29:15 신고

루비온레일즈, 이미지 업로드만으로 서버 파일 유출 결함 / AI 생성 일러스트(삽화)

루비온레일즈(Ruby on Rails) 보안팀이 액티브스토리지(Active Storage) 컴포넌트에서 발견된 크리티컬 취약점에 대한 긴급 패치를 배포했다. 이 결함은 CVE-2026-66066으로 등록됐으며 CVSS 점수는 9.5에 달한다. 인증 절차를 거치지 않은 공격자가 조작된 이미지 파일을 업로드하는 것만으로 서버 내 임의의 파일을 읽어낼 수 있는 결함이다. 이 경로로 secret_key_base, 레일즈 마스터키, 데이터베이스 비밀번호, 클라우드 스토리지 자격증명, API 토큰 등 핵심 비밀정보가 노출될 수 있다. 탈취된 정보는 원격코드실행(RCE)이나 연결된 시스템으로의 측면이동(lateral movement)으로 이어질 가능성이 있어 위험도가 높게 평가됐다.

액티브스토리지와 libvips 사이 신뢰 경계가 뚫렸다

문제의 핵심은 업로드를 처리하는 액티브스토리지와 이미지 처리 라이브러리 libvips 사이의 신뢰 경계에 있다. libvips는 수십 종의 로더·세이버 등 기능을 지원하는데, 일부는 서드파티 라이브러리에 의존하며 악의적 입력에 안전하지 않다는 의미로 “unfuzzed” 또는 “untrusted”로 표시돼 있다. 레일즈 보안 권고에 따르면 액티브스토리지는 이런 위험 기능들을 차단하지 않았고, 조작된 업로드가 해당 기능을 호출해 파일을 유출할 수 있는 구조였다.

패치 공개 자료를 보면 Vips 분석기와 변환기 모두 검증되지 않은 첨부파일을 안전하지 않은 기능에 그대로 전달했다. 별도의 리사이즈나 썸네일 생성 기능이 없어도 공격이 성립한다는 점도 눈에 띈다. 레일즈 측은 “변형본 생성이 별도의 요구조건은 아니다”라고 설명했다. 즉 파일을 단순히 업로드하는 행위만으로 공격이 완성될 수 있다는 뜻이다.

어떤 버전이 영향을 받고 어떻게 패치하나 / AI 생성 이미지

어떤 버전이 영향을 받고 어떻게 패치하나

포르투갈 보안업체 이디악(Ethiack)과 일본 GMO플랫시큐리티(GMO Flatt Security)가 제시한 취약 범위는 레일즈 7.0.0부터 7.2.3.1, 8.0.0부터 8.0.5, 8.1.0부터 8.1.3까지다. 공식 보안 권고는 이보다 넓은 범위로 activestorage 7.2.3.2 미만 버전 전체를 명시했다. 레일즈 6.0.0부터 6.1.7.10 버전은 액티브스토리지가 명시적으로 Vips를 사용하도록 설정된 경우에만 영향을 받는다. 레일즈 6에서는 Vips가 기본 처리기가 아니었기 때문이다. 반면 MiniMagick을 이미지 처리기로 쓰는 애플리케이션은 이번 공격 경로의 영향을 받지 않는다.

레일즈 7.0과 7.1은 이미 지원 종료(EOL) 버전이라 별도 패치가 나오지 않는다. 해당 브랜치를 쓰는 곳은 7.2.3.2 이상으로 업그레이드해야 한다. 운영자들은 7.2.3.2, 8.0.5.1, 8.1.3.1 버전으로 올리고 애플리케이션 프로세스가 읽을 수 있는 모든 비밀정보를 교체해야 한다. 패치가 적용된 환경은 libvips 8.13 이상이 필요하며, ruby-vips 브리지를 쓴다면 2.2.1 이상이어야 한다. 즉시 레일즈를 올릴 수 없는 곳은 VIPS_BLOCK_UNTRUSTED 환경변수를 설정하거나 이니셜라이저에서 Vips.block_untrusted(true)를 직접 호출하는 우회 대응도 가능하다. 다만 그보다 오래된 libvips 버전에는 이 차단 기능 자체가 없어 라이브러리를 업그레이드하거나 애플리케이션에서 제거해야 한다.

패치해도 이미 유출된 정보는 되돌릴 수 없다

레일즈 팀은 패치 적용이 이미 탈취됐을 수 있는 자격증명을 무효화하지는 않는다고 명확히 경고했다. 공개적으로 이미지 업로드를 받아온 취약한 레일즈 설치본을 운영했다면 패치 후에도 전면적인 자격증명 교체가 필요하다는 의미다. 레일즈 측이 교체를 권고한 대상은 secret_key_base, 마스터키와 복호화된 credentials.yml.enc 내용, 데이터베이스 자격증명, 액티브스토리지 서비스 키, 서드파티 API 토큰 등이다.

공격이 성공하면 공격자는 임의 파일 읽기 권한을 확보하게 된다. 이후 원격코드실행이나 연결 시스템으로의 확산 여부는 실제로 어떤 파일을 읽어냈는지, 그 안의 자격증명으로 어디까지 접근할 수 있는지에 좌우된다. 세션 쿠키 서명에 쓰이는 secret_key_base가 유출되면 세션 위조 위험이, 데이터베이스 비밀번호가 유출되면 데이터 자체의 노출 위험이 각각 뒤따를 수 있다.

아직 PoC는 없지만 8월 28일이 분수령

이번 취약점은 이디악의 André Baptista, Bruno Mendes, Rafael Castilho와 GMO플랫시큐리티의 RyotaK가 각각 독립적으로 발견해 보고했다. 두 연구팀 모두 악성 파일 형식이나 파일 읽기 구성, RCE 연쇄 공격의 세부 내용은 아직 공개하지 않았다. The Hacker News가 한국시간 7월30일 오전 2시30분(UTC 기준 7월29일 오후 5시30분) 확인한 시점까지 두 연구팀 어느 쪽도 공개 증명(PoC)을 내놓지 않았고, 깃허브·깃랩·Exploit-DB·Packet Storm 등에서도 관련 익스플로잇 저장소가 검색되지 않았다.

레일즈 팀은 늦어도 8월28일(현지시각)까지 추가 기술 세부사항을 공개하겠다고 밝혔다. 공개 시점 이후에는 실제 공격에 활용될 위험이 커질 수 있다는 뜻이어서, 그 이전에 패치를 마쳐야 하는 시급성이 있다. 발표 시점까지 실제 공격에 악용된 사례는 확인되지 않았고, CISA의 알려진 악용 취약점(KEV) 카탈로그 2026.07.27 버전에도 이 CVE는 등재되지 않았다.

현재로서는 취약한 애플리케이션의 정확한 수나 구체적인 피해 사례가 공개돼 있지 않다. CVSS 9.5라는 점수는 CVSS 기준의 심각도를 나타낼 뿐, 실제로 얼마나 많은 서비스가 노출돼 있는지를 뜻하지는 않는다. 실제 피해가 성립하려면 해당 배포본이 Vips를 사용하고, 신뢰할 수 없는 사용자의 이미지 업로드를 받아들이며, 사용 중인 libvips 빌드에 공격 가능한 기능이 포함돼 있어야 한다. 이미지 업로드 기능을 운영 중인 레일즈 서비스라면 버전 확인과 패치 적용을 서둘러야 하는 이유다.

Copyright ⓒ 위키트리 무단 전재 및 재배포 금지

실시간 키워드

  1. -
  2. -
  3. -
  4. -
  5. -
  6. -
  7. -
  8. -
  9. -
  10. -

0000.00.00 00:00 기준

이 시각 주요뉴스

알림 문구가 한줄로 들어가는 영역입니다

신고하기

작성 아이디가 들어갑니다

내용 내용이 최대 두 줄로 노출됩니다

신고 사유를 선택하세요

이 이야기를
공유하세요

이 콘텐츠를 공유하세요.

콘텐츠 공유하고 수익 받는 방법이 궁금하다면👋>
주소가 복사되었습니다.
유튜브로 이동하여 공유해 주세요.
유튜브 활용 방법 알아보기