🇰🇷 한글 설명
Oniguruma 정규표현식 엔진의 reg->dmax 잘못된 처리로 인해 left_adjust_char_head() 함수에서 포인터 참조 오류가 발생합니다. 이는 Ruby 2.4.1 이하와 PHP 7.1.5 이하의 정규표현식 컴파일 시 SIGSEGV를 유발하여 서비스 거부 상태를 야기합니다.
💡 쉬운 설명
특정 정규표현식을 처리할 때 프로그램이 메모리에 잘못 접근하여 충돌합니다. 이를 악용하면 웹사이트나 애플리케이션을 다운시킬 수 있습니다.
🇺🇸 원문 (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 SIGSEGV occurs in left_adjust_char_head() during regular expression compilation. Invalid handling of reg->dmax in forward_search_range() could result in an invalid pointer dereference, normally as an immediate denial-of-service condition.
📍 영향받는 시스템
Ruby 2.4.1 이하, PHP 7.1.5 이하, Oniguruma-mod 6.2.0 포함된 모든 버전
⚔️ 공격 벡터
악의적인 정규표현식 패턴을 애플리케이션에 제출하여 정규표현식 컴파일 시 세그먼테이션 폴트 유발
🛡️ 대응 방법
Ruby를 2.4.2 이상, PHP를 7.1.6 이상으로 업그레이드하거나 Oniguruma를 최신 패치 버전으로 업데이트
🔧 검증 코드
Ruby 버전이 2.4.1 이하이거나 PHP 버전이 7.1.5 이하이면 취약한 것으로 판단되며, 권장 버전 이상으로 업그레이드 필요
ruby -v | grep -E '2\.[0-4]\.[0-1]' && echo 'Vulnerable' || echo 'Check version'; php -v | grep -E '7\.1\.[0-5]' && echo 'Vulnerable' || echo 'Check version'