🇰🇷 한글 설명
WordPress용 Tutor LMS 플러그인에서 PHP 객체 주입(Object Injection) 취약점이 발견되었습니다. 공격자가 특정 AJAX 핸들러의 매개변수를 조작하여 직렬화된 데이터를 변조함으로써, 인증된 사용자(구독자 이상)가 서버에서 원격 코드 실행(RCE)을 수행할 수 있습니다.
💡 쉬운 설명
웹사이트의 학습 관리 플러그인에 보안 구멍이 있어, 가입된 사용자가 악성 코드를 서버에 심을 수 있습니다. 이를 통해 해커가 서버의 제어권을 완전히 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 4.0.7 via the `withdraw_method_field` parameter of the `tutor_save_withdraw_account` AJAX handler. This is due to the handler lacking any capability or role check, relying solely on a nonce, while also passing attacker-supplied values through `esc_sql()`, which replaces every `%` character with a 66-byte HMAC placeholder token before the data is serialized and stored via `update_user_meta()`; when the meta is later retrieved, the placeholder is collapsed back to a single `%`, leaving serialized string length declarations 65 bytes greater than the actual content, and because array keys originate from entirely unescaped POST field names, `unserialize()` over-reads into attacker-controlled bytes, allowing injection of an arbitrary serialized object stream. This makes it possible for authenticated attackers, with subscriber-level access and above, to achieve remote code execution on the server by triggering the `GuzzleHttp\Cookie\FileCookieJar` POP chain, reachable via the `spl_autoload_register` loader in `TUTOR\RestAPI` which loads the plugin's own bundled PayPal Composer autoloader, writing attacker-controlled content to an attacker-specified filename. This has an unauthenticated pathway when user registration is enabled, which is common for students and teachers to register, and it requires the monetization feature to be enabled.
📍 영향받는 시스템
Tutor LMS (WordPress plugin) version 4.0.7 and below
⚔️ 공격 벡터
AJAX 핸들러의 withdraw_method_field 매개변수를 통한 직렬화 데이터 조작 및 POP 체인 트리거
🛡️ 대응 방법
Tutor LMS 플러그인을 최신 보안 패치가 적용된 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 tutor-lms의 버전을 확인하여 4.0.7 이하인지 점검하십시오.
wp plugin list --status=active | grep -i 'tutor-lms'