
Advanced Custom Fields: Extended <= 0.9.2.5 - 인증되지 않은 권한 상승 (유효성 검사 우회를 통한 '_acf_post_id' 파라미터)
Advanced Custom Fields: Extended <= 0.9.2.5 - 검증 우회를 통한 인증되지 않은 권한 상승 (Validation Bypass to '_acf_post_id' Parameter) 이 중요한 보안 취약점(CVSS 9.8)은 인기 있는 WordPress 플러그인 Advanced Custom Fields: Extended (ACF Extended)의 0.9.2.5 이상 모든 버전에 영향을 미칩니다.
버전 0.9.2.6에서 수정되었지만, 취약점은 다음과 같이 작동합니다:
문제 함수: 취약점의 근본 원인은 after_validate_save_post() 함수가 _acf_post_id라는 POST 매개변수에 대해 신뢰를 확인하지 않은 데 있습니다. 플러그인은 이 매개변수를 검증 또는 인증 과정에 적용하지 않습니다.
검증 우회: 공격자는 _acf_post_id 매개변수를 조작하여 함수가 "acfe:" 접두사가 없는 모든 검증 오류를 무시하는 정리 분기를 조용히 선택하도록 합니다. 이로 인해 두 가지 중요한 보안 검사가 비활성화됩니다:
acfe_field_user_roles::validate_front_value()가 추가한 역할 권한 목록 검증 오류.
acfe_module_form_action_user::validate_action()가 추가한 관리자 권한 보호 오류.
무단 관리자 생성: 이러한 검사가 우회된 후, 공격자가 제공한 "administrator" 역할 인수와 함께 wp_insert_user() 함수가 실행됩니다. 그 결과, 인증되지 않은 사용자가 시스템에 새로운 관리자 계정을 생성하게 되며, 이는 플러그인의 의도된 목적에 반합니다.
Logical Flow of Exploit Code 다음 Python 스크립트는 이 취약점을 악용하는 방법을 보여주는 개념 증명입니다. 이 코드는 필요한 모든 단계를 자동화하여 작동합니다.