🇰🇷 한글 설명
Oniguruma 정규표현식 엔진의 유니코드 처리 함수에서 특정 코드 포인트(0xFFFFFFFF) 검증이 누락되어 스택 버퍼 오버플로우 발생. Ruby와 PHP의 정규표현식 라이브러리가 영향을 받으며, 악의적인 정규표현식 컴파일 시 4바이트를 스택 메모리 범위를 벗어나서 쓸 수 있다.
💡 쉬운 설명
문자 패턴 처리 소프트웨어의 메모리 오류로, 특수한 문자 패턴을 입력할 때 메모리 범위를 벗어나서 데이터를 쓸 수 있습니다. 이를 통해 시스템을 완전히 조종하거나 정보를 유출할 수 있습니다.
🇺🇸 원문 (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 stack out-of-bounds write in onigenc_unicode_get_case_fold_codes_by_str() occurs during regular expression compilation. Code point 0xFFFFFFFF is not properly handled in unicode_unfold_key(). A malformed regular expression could result in 4 bytes being written off the end of a stack buffer of expand_case_fold_string() during the call to onigenc_unicode_get_case_fold_codes_by_str(), a typical stack buffer overflow.
📍 영향받는 시스템
Ruby 2.4.1 이하, PHP 7.1.5 이하 (Oniguruma 6.2.0 포함된 버전)
⚔️ 공격 벡터
네트워크를 통해 악의적인 정규표현식 패턴을 포함한 입력을 전달하여 원격 코드 실행 가능
🛡️ 대응 방법
Ruby를 2.4.2 이상, PHP를 7.1.6 이상으로 업그레이드 또는 Oniguruma를 6.3.0 이상으로 업데이트
🔧 검증 코드
Ruby 버전이 2.4.1 이하이거나 PHP 버전이 7.1.5 이하이면 취약하며, 즉시 업그레이드 필요
ruby -v 2>/dev/null; php -v 2>/dev/null | head -1