{"id":40274,"date":"2026-10-16T12:34:08","date_gmt":"2026-10-16T04:34:08","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-104745"},"modified":"2026-10-16T12:34:08","modified_gmt":"2026-10-16T04:34:08","slug":"cve-2026-104745","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-104745","title":{"rendered":"CVE-2026-104745 [HIGH] &#8211; The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Priv"},"content":{"rendered":"<p>The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Privilege Escalation via the `alg_wc_ev_verify_email` parameter in versions up to, and including, 3.3.0. The vulnerability exists because `alg_wc_ev_generate_user_code()` generates the per-user activation secret using `wp_rand(100)` when the plugin&#8217;s &#8216;Encoding method&#8217; is set to &#8216;hashids&#8217;, producing only ~101 possible values (~7 bits of entropy); the resulting token is a reversible Hashids encoding with no cryptographic MAC, and the unauthenticated `verify()` handler \u2014 hooked to `init` at `PHP_INT_MAX` with no nonce check and no rate limiting \u2014 accepts and acts on the attacker-controlled `?alg_wc_ev_verify_email=` GET parameter directly. This makes it possible for unauthenticated attackers to gain authentication as any unverified WordPress account, including administrator-level accounts, by brute-forcing the trivially small activation code space via a forged verification URL. Exploitation requires that the &#8216;Encoding method&#8217; setting be changed to &#8216;hashids&#8217; (non-default), that the attacker recover or brute-force the Hashids salt (which defaults to an `md5(time())` value set at first initialization), and that the target account&#8217;s email address remain unverified.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Privilege Escalation via the `alg_wc_ev_verify_email` parameter in versions up to, and including, 3.3.0. The vulne<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-40274","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/40274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=40274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=40274"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=40274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}