Opened 3 years ago
Last modified 2 years ago
#13377 new defect (bug)
Add more sanitization in _cleanup_header_comment
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Priority: | normal | Milestone: | Future Release |
| Component: | Security | Version: | 3.0 |
| Severity: | normal | Keywords: | has-patch |
| Cc: |
Description
The _cleanup_header_comment function is used in multiple places, but one in particular can cause some problems on the Page edit screen (or any screen that uses page templates). The get_page_templates function (which gets the list of page templates to display in a <select> box on the page edit screen) uses to cleanup the page templates retrieved from a file.
Unfortunately the function does not sanitize enough, and if (for instance) JavaScript existed in the page template name it would be run on the Page Edit screen.
To test, add some JavaScript (with <script> tags) to the "Template Name:" line of a page template, and load the Page edit screen.

It appears to be used in get_file_data() (which is sanitized properly where used), get_file_description() and get_page_templates().
The attached patch sanitizes uses of the latter two with esc_html(), apart from get_page_templates() in wp_getPageTemplates(). Not really sure what to do with that.
It also standardises trim() usage on get_file_description($file) and makes the $filedesc logic actually understandable.