Below is a differential between the unpatched vulnerable code and the patched update, for reference.
--- a/optimole-wp/inc/url_replacer.php
+++ b/optimole-wp/inc/url_replacer.php
@@ -163,6 +163,10 @@
$url = sprintf( '%s://%s', is_ssl() ? 'https' : 'http', $url );
}
$normalized_ext = strtolower( $ext );
+ $url = esc_url( $url );
+ if ( empty( $url ) ) {
+ return $original_url;
+ }
if ( isset( Optml_Config::$image_extensions[ $normalized_ext ] ) ) {
$new_url = $this->normalize_image( $url, $original_url, $args, $is_uploaded, $normalized_ext );
if ( $is_uploaded ) {
--- a/optimole-wp/optimole-wp.php
+++ b/optimole-wp/optimole-wp.php
@@ -2,7 +2,7 @@
/**
* Plugin Name: Image optimization service by Optimole
* Description: Complete handling of your website images.
- * Version: 4.2.7
+ * Version: 4.2.8
* Author: Optimole
* Author URI: https://optimole.com
* License: GPL-2.0+
@@ -87,7 +87,7 @@
}
define( 'OPTML_URL', plugin_dir_url( __FILE__ ) );
define( 'OPTML_PATH', plugin_dir_path( __FILE__ ) );
- define( 'OPTML_VERSION', '4.2.7' );
+ define( 'OPTML_VERSION', '4.2.8' );
define( 'OPTML_NAMESPACE', 'optml' );
define( 'OPTML_BASEFILE', __FILE__ );
define( 'OPTML_PRODUCT_SLUG', basename( OPTML_PATH ) );
--- a/optimole-wp/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.asset.php
+++ b/optimole-wp/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'wp-components', 'wp-element'), 'version' => '8d9c74cada5a40e4082b');
+<?php return array('dependencies' => array('react', 'wp-components', 'wp-element'), 'version' => '33f2e4c85280a9cf0f4e');
--- a/optimole-wp/vendor/codeinwp/themeisle-sdk/load.php
+++ b/optimole-wp/vendor/codeinwp/themeisle-sdk/load.php
@@ -14,7 +14,7 @@
return;
}
// Current SDK version and path.
-$themeisle_sdk_version = '3.3.52';
+$themeisle_sdk_version = '3.3.53';
$themeisle_sdk_path = dirname( __FILE__ );
global $themeisle_sdk_max_version;
--- a/optimole-wp/vendor/codeinwp/themeisle-sdk/src/Loader.php
+++ b/optimole-wp/vendor/codeinwp/themeisle-sdk/src/Loader.php
@@ -268,6 +268,42 @@
'newsHeading' => 'Stay connected for news & updates!',
'emailPlaceholder' => 'Your email address',
'signMeUp' => 'Sign me up',
+ 'services' => [
+ 'ariaLabel' => 'Themeisle services',
+ 'trustpilotLabel' => 'Rated excellent on Trustpilot',
+ 'trustpilotRated' => 'Rated',
+ 'trustpilotOn' => 'on',
+ 'trustpilotBrand' => 'Trustpilot',
+ 'heading' => 'Expert WordPress services from the Themeisle team',
+ 'description' => 'Done for you by the same people who build your plugins and themes.',
+ 'cta' => 'Explore all services',
+ 'items' => [
+ 'websiteDesign' => [
+ 'title' => 'Website Design',
+ 'subtitle' => 'Built for your business',
+ ],
+ 'support' => [
+ 'title' => 'Support',
+ 'subtitle' => 'On-demand expert help',
+ ],
+ 'speed' => [
+ 'title' => 'Speed Optimization',
+ 'subtitle' => 'Core Web Vitals boost',
+ ],
+ 'seo' => [
+ 'title' => 'SEO Foundation',
+ 'subtitle' => 'Rank & get found',
+ ],
+ 'maintenance' => [
+ 'title' => 'Maintenance',
+ 'subtitle' => 'Updates, backups, security',
+ ],
+ 'hackedSite' => [
+ 'title' => 'Hacked Site Repair',
+ 'subtitle' => 'Malware removed fast',
+ ],
+ ],
+ ],
'installNow' => 'Install Now',
'activate' => 'Activate',
'learnMore' => 'Learn More',
--- a/optimole-wp/vendor/codeinwp/themeisle-sdk/src/Modules/About_us.php
+++ b/optimole-wp/vendor/codeinwp/themeisle-sdk/src/Modules/About_us.php
@@ -225,6 +225,7 @@
'newsHeading' => Loader::$labels['about_us']['newsHeading'],
'emailPlaceholder' => Loader::$labels['about_us']['emailPlaceholder'],
'signMeUp' => Loader::$labels['about_us']['signMeUp'],
+ 'services' => Loader::$labels['about_us']['services'],
'installNow' => Loader::$labels['about_us']['installNow'],
'activate' => Loader::$labels['about_us']['activate'],
'learnMore' => Loader::$labels['about_us']['learnMore'],
--- a/optimole-wp/vendor/codeinwp/themeisle-sdk/src/Modules/Dashboard_widget.php
+++ b/optimole-wp/vendor/codeinwp/themeisle-sdk/src/Modules/Dashboard_widget.php
@@ -123,6 +123,10 @@
}
?>
<style type="text/css">
+ #dashboard-widgets #themeisle .hndle {
+ padding-left: 39px;
+ }
+
#themeisle ul li.ti-dw-recommend-item {
padding-left: 7px;
border-top: 1px solid #eee;
@@ -135,7 +139,6 @@
background-repeat: no-repeat;
background-position: 2% 50%;
background-size: 25px;
- padding-left: 39px;
}
#themeisle .inside {
--- a/optimole-wp/vendor/codeinwp/themeisle-sdk/src/Modules/Promotions.php
+++ b/optimole-wp/vendor/codeinwp/themeisle-sdk/src/Modules/Promotions.php
@@ -209,7 +209,7 @@
add_filter( 'themeisle_sdk_ran_promos', '__return_true' );
if ( get_option( $this->option_neve, false ) !== true ) {
- add_action( 'wp_ajax_themeisle_sdk_dismiss_notice', 'ThemeisleSDKModulesNotification::regular_dismiss' );
+ add_action( 'wp_ajax_themeisle_sdk_dismiss_notice', 'ThemeisleSDKModulesNotification::dismiss' );
}
}
--- a/optimole-wp/vendor/composer/installed.php
+++ b/optimole-wp/vendor/composer/installed.php
@@ -29,9 +29,9 @@
'dev_requirement' => false,
),
'codeinwp/themeisle-sdk' => array(
- 'pretty_version' => '3.3.52',
- 'version' => '3.3.52.0',
- 'reference' => 'd1ae68cbd4f84934b4d982e9eeff317b9f4c814a',
+ 'pretty_version' => '3.3.53',
+ 'version' => '3.3.53.0',
+ 'reference' => 'a657eaedf62cc84c82e539167ac9e19b3e618ce8',
'type' => 'library',
'install_path' => __DIR__ . '/../codeinwp/themeisle-sdk',
'aliases' => array(),