Make WordPress Core


Ignore:
Timestamp:
03/13/2026 01:03:05 PM (6 months ago)
Author:
johnbillion
Message:

Grouped backports for the 4.8 branch.

  • XML-RPC: Switch to wp_safe_remote() when fetching a pingback URL.
  • HTML API: Prevent WP_HTML_Tag_Processor instances being unserialized and add some extra logic for validating pattern and template file paths.
  • KSES: Optimize PCRE pattern detecting numeric character references.
  • Customize: Improve escaping approach used for nav menu attributes.
  • Media: Ensure the attachment parent is accessible to the user before showing a link to it in the media manager.
  • Administration: Ensure client-side templates are only detected when they're correctly associated with a script tag.
  • Filesystem API: Don't attempt to extract invalid files from a zip when using the PclZip library.

Merges [61879-61884,61886-61887,61890,61913] to the 4.8 branch.

Props johnbillion, xknown, dmsnell, jorbin, peterwilson, desrosj, westonruter, jonsurrell, aurdasjb.

Location:
branches/4.8
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.8

  • branches/4.8/src/wp-includes/kses.php

    r46917 r62005  
    541541        $allowed_protocols = wp_allowed_protocols();
    542542        $string = wp_kses_no_null( $string, array( 'slash_zero' => 'keep' ) );
    543        
     543
    544544        // Preserve leading and trailing whitespace.
    545545        $matches = array();
     
    553553                $string = substr( $string, strlen( $lead ), -strlen( $trail ) );
    554554        }
    555        
     555
    556556        // Parse attribute name and value from input.
    557557        $split = preg_split( '/\s*=\s*/', $string, 2 );
     
    590590                $vless = 'y';
    591591        }
    592        
     592
    593593        // Sanitize attribute by name.
    594594        wp_kses_attr_check( $name, $value, $string, $vless, $element, $allowed_html );
     
    11251125                $xhtml_slash = '';
    11261126        }
    1127        
     1127
    11281128        // Split it
    11291129        $attrarr = wp_kses_hair_parse( $attr );
     
    11351135        array_unshift( $attrarr, $begin . $slash . $elname );
    11361136        array_push( $attrarr, $xhtml_slash . $end );
    1137        
     1137
    11381138        return $attrarr;
    11391139}
     
    14501450        $string = str_replace('&', '&', $string);
    14511451
    1452         // Change back the allowed entities in our entity whitelist
    1453         $string = preg_replace_callback('/&([A-Za-z]{2,8}[0-9]{0,2});/', 'wp_kses_named_entities', $string);
    1454         $string = preg_replace_callback('/&#(0*[0-9]{1,7});/', 'wp_kses_normalize_entities2', $string);
    1455         $string = preg_replace_callback('/&#[Xx](0*[0-9A-Fa-f]{1,6});/', 'wp_kses_normalize_entities3', $string);
     1452        $string = preg_replace_callback( '/&([A-Za-z]{2,8}[0-9]{0,2});/', 'wp_kses_named_entities', $string );
     1453        $string = preg_replace_callback( '/&#(0*+[1-9][0-9]{0,6});/', 'wp_kses_normalize_entities2', $string );
     1454        $string = preg_replace_callback( '/&#[Xx](0*+[1-9A-Fa-f][0-9A-Fa-f]{0,5});/', 'wp_kses_normalize_entities3', $string );
    14561455
    14571456        return $string;
Note: See TracChangeset for help on using the changeset viewer.