🔍 CVE-2017-9226

9.8
CVSS Score
CRITICAL
2017-05-24
2026-05-13 00:24
✅ 완료

🇰🇷 한글 설명

Oniguruma 6.2.0의 정규식 처리 취약점으로, 0xff를 초과하는 8진수(예: \700)를 처리할 때 힙 메모리 경계를 벗어나 데이터를 읽거나 쓸 수 있습니다. Ruby 2.4.1 이하 및 PHP 7.1.5 이하의 정규식 엔진에서 발생하며, 메모리 손상 및 코드 실행으로 이어질 수 있습니다.

💡 쉬운 설명

정규식에 특수한 숫자('\700' 같은)를 포함하면 프로그램의 메모리를 잘못 접근할 수 있습니다. 이를 악용해 시스템을 충돌시키거나 제어할 수 있습니다.

🇺🇸 원문 (English)

An issue was discovered in Oniguruma 6.2.0, as used in Oniguruma-mod in Ruby through 2.4.1 and mbstring in PHP through 7.1.5. A heap out-of-bounds write or read occurs in next_state_val() during regular expression compilation. Octal numbers larger than 0xff are not handled correctly in fetch_token() and fetch_token_in_cc(). A malformed regular expression containing an octal number in the form of '\700' would produce an invalid code point value larger than 0xff in next_state_val(), resulting in an out-of-bounds write memory corruption.

📍 영향받는 시스템

Ruby 2.4.1 이하, PHP 7.1.5 이하, Oniguruma 6.2.0을 사용하는 모든 시스템

⚔️ 공격 벡터

악의적인 정규식 패턴(\700 형태의 8진수)을 입력받는 애플리케이션에 전달하여 메모리 오버플로우 트리거

🛡️ 대응 방법

Ruby를 2.4.2 이상으로, PHP를 7.1.6 이상으로, Oniguruma를 패치 버전으로 업그레이드

🔧 검증 코드

Ruby 버전이 2.4.2 이상이고 PHP 버전이 7.1.6 이상이면 안전합니다.

Shell / Script
ruby --version | awk '{print $2}' && php --version | head -1 | awk '{print $2}'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

PHP