Changeset 3293989
- Timestamp:
- 05/15/2025 10:27:05 AM (10 months ago)
- Location:
- visualcomposer/trunk
- Files:
-
- 8 edited
-
readme.txt (modified) (2 diffs)
-
vendor/autoload.php (modified) (1 diff)
-
vendor/composer/InstalledVersions.php (modified) (2 diffs)
-
vendor/composer/autoload_real.php (modified) (3 diffs)
-
vendor/composer/autoload_static.php (modified) (2 diffs)
-
vendor/composer/installed.php (modified) (2 diffs)
-
visualcomposer/Helpers/PostsGridPagination.php (modified) (1 diff)
-
visualcomposer/Modules/Elements/EncodedShortcode/Controller.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
visualcomposer/trunk/readme.txt
r3275329 r3293989 4 4 Requires PHP: 7.4 5 5 Requires at least: 5.5 6 Tested up to: 6.8 7 Stable tag: 45.1 1.06 Tested up to: 6.8.1 7 Stable tag: 45.12.0 8 8 License: GPLv3 9 9 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 222 222 223 223 == Changelog == 224 225 = 45.12.0 = 226 *Release Date - 2025-05-15* 227 228 ### Free: 229 - Fix: Prevent XSS for post grid pagination 230 - Fix: Improved vulnerability issue for encoded shortcode content 231 232 ### Premium: 233 - Compatibility: Works properly with PHP 8.3 and WordPress 6.8 224 234 225 235 = 45.11.0 = -
visualcomposer/trunk/vendor/autoload.php
r3291780 r3293989 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit e10def085d83018d5de84a00e0313758::getLoader();7 return ComposerAutoloaderInitbd6586a3b0790d3c9e3f497ef027eb2f::getLoader(); -
visualcomposer/trunk/vendor/composer/InstalledVersions.php
r3275329 r3293989 20 20 array ( 21 21 ), 22 'reference' => ' 409ee4383cf5b91609a5b762d4830a0b4d9808cb',22 'reference' => '50fd65ce97fe982f82bbca6e70aac7daad892dd1', 23 23 'name' => '__root__', 24 24 ), … … 32 32 array ( 33 33 ), 34 'reference' => ' 409ee4383cf5b91609a5b762d4830a0b4d9808cb',34 'reference' => '50fd65ce97fe982f82bbca6e70aac7daad892dd1', 35 35 ), 36 36 ), -
visualcomposer/trunk/vendor/composer/autoload_real.php
r3291780 r3293989 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit e10def085d83018d5de84a00e03137585 class ComposerAutoloaderInitbd6586a3b0790d3c9e3f497ef027eb2f 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit e10def085d83018d5de84a00e0313758', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInitbd6586a3b0790d3c9e3f497ef027eb2f', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(); 29 spl_autoload_unregister(array('ComposerAutoloaderInit e10def085d83018d5de84a00e0313758', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInitbd6586a3b0790d3c9e3f497ef027eb2f', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit e10def085d83018d5de84a00e0313758::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInitbd6586a3b0790d3c9e3f497ef027eb2f::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; -
visualcomposer/trunk/vendor/composer/autoload_static.php
r3291780 r3293989 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit e10def085d83018d5de84a00e03137587 class ComposerStaticInitbd6586a3b0790d3c9e3f497ef027eb2f 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 312 312 { 313 313 return \Closure::bind(function () use ($loader) { 314 $loader->prefixLengthsPsr4 = ComposerStaticInit e10def085d83018d5de84a00e0313758::$prefixLengthsPsr4;315 $loader->prefixDirsPsr4 = ComposerStaticInit e10def085d83018d5de84a00e0313758::$prefixDirsPsr4;316 $loader->classMap = ComposerStaticInit e10def085d83018d5de84a00e0313758::$classMap;314 $loader->prefixLengthsPsr4 = ComposerStaticInitbd6586a3b0790d3c9e3f497ef027eb2f::$prefixLengthsPsr4; 315 $loader->prefixDirsPsr4 = ComposerStaticInitbd6586a3b0790d3c9e3f497ef027eb2f::$prefixDirsPsr4; 316 $loader->classMap = ComposerStaticInitbd6586a3b0790d3c9e3f497ef027eb2f::$classMap; 317 317 318 318 }, null, ClassLoader::class); -
visualcomposer/trunk/vendor/composer/installed.php
r3275329 r3293989 7 7 array ( 8 8 ), 9 'reference' => ' 409ee4383cf5b91609a5b762d4830a0b4d9808cb',9 'reference' => '50fd65ce97fe982f82bbca6e70aac7daad892dd1', 10 10 'name' => '__root__', 11 11 ), … … 19 19 array ( 20 20 ), 21 'reference' => ' 409ee4383cf5b91609a5b762d4830a0b4d9808cb',21 'reference' => '50fd65ce97fe982f82bbca6e70aac7daad892dd1', 22 22 ), 23 23 ), -
visualcomposer/trunk/visualcomposer/Helpers/PostsGridPagination.php
r3150179 r3293989 16 16 public function getPaginationUrl($id, $page) 17 17 { 18 return add_query_arg('vcv-pagination-' . $id, $page);18 return esc_url(add_query_arg('vcv-pagination-' . $id, $page)); 19 19 } 20 20 } -
visualcomposer/trunk/visualcomposer/Modules/Elements/EncodedShortcode/Controller.php
r3272314 r3293989 23 23 $this->addShortcode('vcv_encoded_shortcode'); 24 24 25 $this->wpAddFilter(' wp_insert_post_data', [$this, 'checkEncodedShortcode']);25 $this->wpAddFilter('content_save_pre', [$this, 'checkEncodedShortcode']); 26 26 } 27 27 … … 29 29 * Remove vcv_encoded_shortcode shortcode for users without unfiltered_html capability. 30 30 * 31 * @param array $data31 * @param string $content 32 32 * 33 * @return array33 * @return string 34 34 */ 35 public function checkEncodedShortcode($ data)35 public function checkEncodedShortcode($content) 36 36 { 37 $user_id = get_current_user_id(); 38 if (!$user_id) { 39 return $data; 37 if (current_user_can('unfiltered_html')) { 38 return $content; 40 39 } 41 40 42 if ( user_can($user_id, 'unfiltered_html')) {43 return $ data;41 if (strpos($content, 'vcv_encoded_shortcode') === false) { 42 return $content; 44 43 } 45 44 46 if (strpos($data['post_content'], '[vcv_encoded_shortcode]') === false) { 47 return $data; 45 $regex = $this->get_shortcode_regex('vcv_encoded_shortcode'); 46 return preg_replace('/' . $regex . '/', '', $content); 47 } 48 49 /** 50 * Get the shortcode regex. 51 * 52 * @param string $tagregexp 53 * 54 * @return string 55 */ 56 public function get_shortcode_regex($tagregexp = '') 57 { 58 if (0 === strlen($tagregexp)) { 59 return get_shortcode_regex(); 48 60 } 49 61 50 $data['post_content'] = preg_replace( 51 '/\[vcv_encoded_shortcode\](.*?)\[\/vcv_encoded_shortcode\]/s', 52 '', 53 $data['post_content'] 54 ); 55 56 return $data; 62 return '\\[' // Opening bracket. 63 . '(\\[?)' // 1: Optional second opening bracket for escaping shortcodes: [[tag]]. 64 . "($tagregexp)" // 2: Shortcode name. 65 . '(?![\\w\-])' // Not followed by word character or hyphen. 66 . '(' // 3: Unroll the loop: Inside the opening shortcode tag. 67 . '[^\\]\\/]*' // Not a closing bracket or forward slash. 68 . '(?:' . '\\/(?!\\])' // A forward slash not followed by a closing bracket. 69 . '[^\\]\\/]*' // Not a closing bracket or forward slash. 70 . ')*?' . ')' . '(?:' . '(\\/)' // 4: Self closing tag . 71 . '\\]' // ... and closing bracket. 72 . '|' . '\\]' // Closing bracket. 73 . '(?:' . '(' // 5: Unroll the loop: Optionally, anything between the opening and closing shortcode tags. 74 . '[^\\[]*+' // Not an opening bracket. 75 . '(?:' . '\\[(?!\\/\\2\\])' // An opening bracket not followed by the closing shortcode tag. 76 . '[^\\[]*+' // Not an opening bracket. 77 . ')*+' . ')' . '\\[\\/\\2\\]' // Closing shortcode tag. 78 . ')?' . ')' . '(\\]?)'; 57 79 } 58 80 }
Note: See TracChangeset
for help on using the changeset viewer.