광고 문의
PC·노트북

Ruby, Onigmo 정규식 취약점 보안 업데이트 공개

GitLab이 신고한 Onigmo 정규식 엔진의 원격 코드 실행 결함을 수정한 Ruby 4.0.9, 3.4.12, 3.3.13이 공개됐다.

Ruby 개발팀이 2026년 10월 23일(UTC) Ruby가 사용하는 Onigmo 정규식 엔진의 여러 문제를 해결하는 보안 업데이트를 공개했다. 수정 버전은 Ruby 4.0.9, Ruby 3.4.12, Ruby 3.3.13이다. 이번 소식은 forest.watch.impress.co.jp가 전했다.

문제는 GitLab이 신고했으며, GitLab 서버에서 원격 코드 실행으로 이어질 수 있는 것으로 보고됐다. 할당된 CVE 번호는 CVE-2026-89078, CVE-2026-93577, CVE-2026-97229, CVE-2026-110264 등 4건이다.

취약점에는 정규식 파서의 double free와 정규식 컴파일러, 그중에서도 CI/CD 정규식 컴파일러의 정수 오버플로가 포함된다. Ruby가 공격자가 만든 정규식 패턴을 컴파일하는 과정에서 메모리가 손상될 수 있으며, 원격 코드 실행으로 이어질 가능성이 있다.

영향 범위와 대응

영향을 받는 것은 Regexp.new, Regexp.union, Regexp.compile처럼 공격자가 제어하는 문자열로 정규식을 컴파일하거나, 정규식 리터럴에 문자열을 삽입해 컴파일하는 애플리케이션이다. 개발자가 직접 작성한 정규식만 사용하는 애플리케이션은 해당하지 않는다. Ruby 팀은 타임아웃과 패턴 길이 제한이 신뢰할 수 있는 완화책이 아니라고 밝혔다.

즉시 업데이트할 수 없는 사용자는 신뢰할 수 없는 입력으로 정규식을 컴파일하지 않아야 한다. Ruby 3.3.13에서는 내장 resolv 라이브러리도 v0.3.2로 함께 갱신됐다.

Ruby 측은 이번 문제를 자체적으로 취약점으로 규정할지 결정하지 않았고 CVE 번호도 신청하지 않았으며, 당분간 GitLab이 발급한 CVE 번호로 추적해야 한다. GitLab은 앞서 GitLab v19.4.1/19.4.2/19.5.1에서 내장 Ruby를 패치했고, 이번 수정 사항이 Ruby 릴리스 브랜치에 반영됐다. 한편 Ruby는 1993년 Yukihiro Matsumoto가 시작해 오픈소스로 개발되고 있다.

한눈에 보기

수정된 Ruby 버전은 무엇인가?

Ruby 4.0.9, Ruby 3.4.12, Ruby 3.3.13이다.

영향을 받는 애플리케이션은?

Regexp.new, Regexp.union, Regexp.compile 등으로 공격자가 제어하는 문자열을 정규식으로 컴파일하는 애플리케이션이다. 개발자가 작성한 정규식만 쓰는 경우는 해당하지 않는다.

즉시 업데이트가 어렵다면?

신뢰할 수 없는 입력으로 정규식을 컴파일하지 않아야 한다. 타임아웃과 패턴 길이 제한은 신뢰할 수 있는 완화책이 아니다.

출처