🇰🇷 한글 설명
Oniguruma 6.2.0의 정규표현식 컴파일 과정에서 parse_char_class() 함수의 잘못된 상태 전이로 인해 미초기화된 변수가 인덱스로 사용되어 bitset_set_range()에서 힙 오버플로우 쓰기가 발생합니다. Ruby 2.4.1 이하와 PHP 7.1.5 이하의 mbstring 모듈에 영향을 줍니다.
💡 쉬운 설명
정규표현식 처리 중 메모리를 잘못된 위치에 쓰는 버그로, 악의적인 정규표현식을 입력하면 프로그램 충돌이나 코드 실행이 가능합니다. Ruby와 PHP 웹 애플리케이션이 주로 영향을 받습니다.
🇺🇸 원문 (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 occurs in bitset_set_range() during regular expression compilation due to an uninitialized variable from an incorrect state transition. An incorrect state transition in parse_char_class() could create an execution path that leaves a critical local variable uninitialized until it's used as an index, resulting in an out-of-bounds write memory corruption.
📍 영향받는 시스템
Oniguruma 6.2.0, Ruby <= 2.4.1, PHP mbstring <= 7.1.5
⚔️ 공격 벡터
악의적으로 조작된 정규표현식 패턴을 입력으로 제공하여 피해 애플리케이션이 처리하도록 유도
🛡️ 대응 방법
Oniguruma를 6.3.0 이상, Ruby를 2.4.2 이상, PHP를 7.1.6 이상으로 업그레이드
🔧 검증 코드
Ruby는 2.4.2 이상, PHP는 7.1.6 이상이어야 안전합니다. 표시된 버전이 더 낮으면 패치 필요
ruby -v && php -v | head -1