Missing Authorization / Broken Access Control
-
Hi,
I’m writing about CVE-2025-64294 (Missing Authorization / Broken Access Control to notice dismissal) in WP Snow Effect ≤ 1.1.19.
The review-notice dismissal handler
wp_snow_effect_set_no_bug()is hooked toadmin_initand updates options when?wpsenobug=1is present. It does not checkcurrent_user_can()and does not verify a nonce. Becauseadmin_initalso runs onadmin-ajax.php(no login redirect), this action can be triggered without proper authorization.wp_snow_effect_check_installation_date()has the same gap: it writes plugin options onadmin_initwithout a capability check.Suggested fix:
- Move dismissal off
admin_inittoadmin_post_wpse_dismiss_notice(do not register a nopriv hook). - In the handler, require
current_user_can( 'manage_options' )andcheck_admin_referer( 'wpse_dismiss_notice' ). - Build the “Leave Me Alone” URL with
wp_nonce_url( admin_url( 'admin-post.php?action=wpse_dismiss_notice' ), 'wpse_dismiss_notice' ). - Guard
wp_snow_effect_check_installation_date()withcurrent_user_can( 'manage_options' )so unauthenticated/low-privilege requests cannot write options.
Happy to provide a patch if that helps.
Kind regards from Germany,
Florian
- Move dismissal off
You must be logged in to reply to this topic.