🇰🇷 한글 설명
Object Sync for Salesforce 플러그인의 REST API 경로에서 인증되지 않은 사용자가 SQL 인젝션을 수행할 수 있는 취약점이 발견되었습니다. wordpress_object_type 매개변수가 적절한 검증 없이 SQL 쿼리에 직접 결합되어 데이터베이스의 민감한 정보를 탈취할 수 있습니다.
💡 쉬운 설명
로그인하지 않은 해커가 특수하게 조작된 명령어를 보내 웹사이트의 데이터베이스를 마음대로 조작하거나 비밀번호를 훔칠 수 있는 보안 구멍입니다. 데이터베이스에 저장된 중요한 정보가 유출될 위험이 매우 높습니다.
🇺🇸 원문 (English)
The Object Sync for Salesforce plugin is vulnerable to unauthenticated SQL Injection via the wordpress_object_type parameter of its /wp-json/object-sync-for-salesforce/push/ REST route. The route's permission callback (can_process()) checks only the HTTP method for the push class — no capability or nonce — so it is reachable by unauthenticated users. The wordpress_object_type value is concatenated directly into a SQL query (post_type = "$object_type", class-object-sync-sf-wordpress.php:328) and executed via $wpdb->get_results() with no $wpdb->prepare() (:578). Because REST body parameters are not magic-quoted, an attacker can break out of the quoted string and inject arbitrary SQL. This makes it possible for unauthenticated attackers to append additional SQL queries (time-based blind), enabling extraction of sensitive information such as password hashes from the database. Only a valid wordpress_id (e.g. 1) is required — no authentication or Salesforce connection.
📍 영향받는 시스템
Object Sync for Salesforce WordPress Plugin (버전 미지정)
⚔️ 공격 벡터
인증 없이 /wp-json/object-sync-for-salesforce/push/ 경로로 조작된 wordpress_object_type 파라미터를 전송하여 SQL 인젝션 수행
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하고, $wpdb->prepare()를 사용하여 SQL 쿼리를 안전하게 처리하도록 코드를 수정해야 합니다.
🔧 검증 코드
명령어 결과에 해당 플러그인이 설치되어 있는지 확인하여 취약점 노출 여부를 판단합니다.
wp cli plugin list --name=object-sync-for-salesforce