🇰🇷 한글 설명
MyBB 1.1.2의 inc/functions_post.php 파일에 있는 domecode 함수가 username 필드를 /e 수정자가 포함된 preg_replace() 함수에 전달하면서 발생하는 원격 PHP 코드 실행 취약점입니다. 공격자가 username 필드에 악의적인 PHP 코드를 주입하여 서버에서 임의 명령어를 실행할 수 있습니다.
💡 쉬운 설명
사용자 이름을 입력하는 필드에 특수한 코드를 넣으면, 웹 서버가 이를 프로그래밍 명령어로 실행해버립니다. 이를 통해 해커가 서버를 완전히 장악할 수 있습니다.
🇺🇸 원문 (English)
The domecode function in inc/functions_post.php in MyBulletinBoard (MyBB) 1.1.2, and possibly other versions, allows remote attackers to execute arbitrary PHP code via the username field, which is used in a preg_replace function call with a /e (executable) modifier.
📍 영향받는 시스템
MyBulletinBoard (MyBB) 1.1.2 및 이전 버전
⚔️ 공격 벡터
게시판 가입 또는 프로필 수정 시 username 필드에 PHP 코드 주입 (예: $_GET[0](1))
🛡️ 대응 방법
MyBB를 최신 패치 버전으로 업그레이드하거나 preg_replace()의 /e 수정자를 제거하고 preg_replace_callback() 사용으로 변경
🔧 검증 코드
명령어가 결과를 반환하면 /e 수정자가 있는 preg_replace()가 존재하는 것으로, 반환값이 없으면 패치된 상태입니다.
find /var/www -name 'functions_post.php' -type f 2>/dev/null | xargs grep -l 'preg_replace.*\/e'