-
-
Notifications
You must be signed in to change notification settings - Fork 522
Open
Milestone
Description
Passing unescaped data to the title property of WP_Admin_Bar::add_menu() is unsafe, because it's not escaped on output in the menu. Example:
add_action( 'admin_bar_menu', function( WP_Admin_Bar $wp_admin_bar ) {
$title = 'Hello world<script>alert(document.cookie);</script>';
$wp_admin_bar->add_menu( array(
'id' => 'wpcs-test',
'title' => $title,
'href' => '#',
) );
} );It would be nice if the following could be added as printing functions, so they trigger a warning when unescaped data is passed to them:
$wp_admin_bar->add_menu$wp_admin_bar->add_node
I tried adding these to the WordPress_Sniff::$printingFunctions property array, but it didn't work, so this might not even be possible. The use of a specific variable name is weird, but it's a common one to use for the parameter passed to callback functions hooked onto the admin_bar_menu hook.
Any ideas about how this could be achieved?