[wp-trac] [WordPress Trac] #30967: $fallback in sanitize_html_class() is not sanitized

WordPress Trac noreply at wordpress.org
Fri Jan 9 14:15:49 UTC 2015

#30967: $fallback in sanitize_html_class() is not sanitized
 Reporter:  mighty_mt          |      Owner:
     Type:  defect (bug)       |     Status:  new
 Priority:  normal             |  Milestone:  Awaiting Review
Component:  Posts, Post Types  |    Version:  trunk
 Severity:  normal             |   Keywords:
  Focuses:                     |
 When looking at the source for the {{{sanitize_html_class()}}} function I
 just noticed that the $fallback variable is not being sanitized. Here's an

 {{{sanitize_html_class( "*!?", "This can't be valid!?" );}}}

 In this example the $class variable will be empty after sanitizing and the
 $fallback variable will be returned '''as is'''. So {{{This can't be
 valid!?}}} would be returned which is definitely not a valid CSS class.


 I think that (if needed) the $fallback variable should equally be
 sanitized by either '''repeating''' the {{{preg_replace}}} calls or by
 '''recursively''' calling {{{sanitize_html_class()}}} passing $fallback as
 $class and leaving $fallback empty (while of course making sure to prevent
 infinite loops).
 For performance reasons the first option might be better because any
 functions hooked to the {{{sanitize_html_class}}} filter would always be
 run only once.

Ticket URL: <https://core.trac.wordpress.org/ticket/30967>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list