Optimole – Optimize Images in Real Time Security & Risk Analysis

wordpress.org/plugins/optimole-wp

Automatically optimize images: bulk compression, lazy loading, WebP/AVIF conversion. With CloudFront image CDN to boost Core Web Vitals & conversions!

200K active installs v4.2.1 PHP 7.4+ WP 5.5+ Updated Mar 9, 2026
convert-webpimage-optimizationimage-optimizerlazy-loadoptimize-images
96
A · Safe
CVEs total3
Unpatched0
Last CVEOct 17, 2025
Download
Safety Verdict

Is Optimole – Optimize Images in Real Time Safe to Use in 2026?

Generally Safe

Score 96/100

Optimole – Optimize Images in Real Time has a strong security track record. Known vulnerabilities have been patched promptly.

3 known CVEsLast CVE: Oct 17, 2025Updated 24d ago
Risk Assessment

The static analysis of Optimole WP v4.2.1 reveals a generally good security posture with several positive indicators. The plugin implements robust security practices such as using prepared statements for all SQL queries, a high percentage of properly escaped output, and a significant number of capability checks. The absence of identified taint flows with unsanitized paths and unprotected entry points is also a strong positive. However, the presence of the `unserialize` function, while not currently exploited in static analysis, represents a potential risk if user-controlled data is passed to it without proper sanitization or validation. The vulnerability history is a significant concern. Three known medium-severity CVEs, although currently patched, indicate a past susceptibility to common vulnerability types like Authorization Bypass and Cross-site Scripting. The recency of the last vulnerability (2025-10-17) suggests an ongoing pattern of potential weaknesses, even if they are addressed.

Key Concerns

  • Dangerous function 'unserialize' detected
  • Past medium severity CVEs
Vulnerabilities
3

Optimole – Optimize Images in Real Time Security Vulnerabilities

CVEs by Year

1 CVE in 2022
2022
1 CVE in 2024
2024
1 CVE in 2025
2025
Patched Has unpatched

Severity Breakdown

Medium
3

3 total CVEs

CVE-2025-11519medium · 4.3Authorization Bypass Through User-Controlled Key

Image optimization service by Optimole <= 4.1.0 - Insecure Direct Object Reference to Authenticated (Author+) Media Offload

Oct 17, 2025 Patched in 4.1.1 (1d)
CVE-2024-4636medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Image Optimization by Optimole – Lazy Load, CDN, Convert WebP & AVIF <= 3.12.10 - Authenticated (Author+) Stored Cross-Site Scripting via SVG Upload

May 14, 2024 Patched in 3.13.0 (1d)
CVE-2022-0969medium · 4.8Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Image optimization & Lazy Load <= 3.3.1 - Admin+ Stored Cross-Site Scripting

Mar 21, 2022 Patched in 3.3.2 (673d)
Code Analysis
Analyzed Mar 16, 2026

Optimole – Optimize Images in Real Time Code Analysis

Dangerous Functions
1
Raw SQL Queries
0
25 prepared
Unescaped Output
18
102 escaped
Nonce Checks
5
Capability Checks
14
File Operations
10
External Requests
7
Bundled Libraries
1

Dangerous Functions Found

unserialize$unserialized = @unserialize( $value );inc\media_rename\attachment_db_renamer.php:397

Bundled Libraries

Guzzle

SQL Query Safety

100% prepared25 total queries

Output Escaping

85% escaped120 total outputs
Data Flows
All sanitized

Data Flow Analysis

2 flows
fetch_logs_ajax_handler (inc\logger.php:216)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Optimole – Optimize Images in Real Time Attack Surface

Entry Points3
Unprotected0

AJAX Handlers 3

authwp_ajax_optml_dismiss_conflict_noticeinc\conflicts\conflicting_plugins.php:32
authwp_ajax_optml_fetch_logsinc\logger.php:66
authwp_ajax_optml_replace_fileinc\media_rename\attachment_edit.php:24
WordPress Hooks 206
actionadmin_menuinc\admin.php:64
actionadmin_menuinc\admin.php:65
actionadmin_headinc\admin.php:66
actionadmin_enqueue_scriptsinc\admin.php:67
actionadmin_noticesinc\admin.php:68
actionadmin_noticesinc\admin.php:69
actionadmin_noticesinc\admin.php:70
actionadmin_initinc\admin.php:72
actionoptml_purge_image_cacheinc\admin.php:73
actioninitinc\admin.php:75
filterwp_insert_attachment_datainc\admin.php:81
filterwp_insert_attachment_datainc\admin.php:83
actionupdated_post_metainc\admin.php:86
actionadded_post_metainc\admin.php:87
filterupdate_attached_fileinc\admin.php:88
actioninitinc\admin.php:93
actioninitinc\admin.php:94
actioninitinc\admin.php:95
actionadmin_initinc\admin.php:96
actionadmin_initinc\admin.php:97
actionplugins_loadedinc\admin.php:98
actionoptml_after_setupinc\admin.php:102
filterupload_mimesinc\admin.php:105
filterwp_handle_upload_prefilterinc\admin.php:112
actionadmin_initinc\admin.php:116
actionwp_headinc\admin.php:452
filterwp_resource_hintsinc\admin.php:453
actionwp_enqueue_scriptsinc\admin.php:465
actionwp_headinc\admin.php:466
filteroptml_additional_html_classesinc\admin.php:468
actionwp_footerinc\admin.php:982
filteroptml_dont_trigger_settings_updatedinc\admin.php:1110
filteroptml_should_avif_extinc\app_replacer.php:336
filteroptml_possible_lazyload_flagsinc\app_replacer.php:344
filteroptml_skip_optimizations_css_classesinc\app_replacer.php:355
filteroptml_strip_image_size_from_urlinc\app_replacer.php:454
filterimage_resize_dimensionsinc\app_replacer.php:455
actionoptml_clear_cacheinc\compatibilities\aruba_hsc.php:27
actionoptml_clear_cacheinc\compatibilities\autoptimize_cache.php:28
filteroptml_lazyload_bg_selectorsinc\compatibilities\beaver_builder.php:26
filterfl_builder_render_cssinc\compatibilities\beaver_builder.php:36
filterfl_builder_render_jsinc\compatibilities\beaver_builder.php:37
actionoptml_clear_cacheinc\compatibilities\breeze.php:28
filtercache_enabler_page_contents_before_storeinc\compatibilities\cache_enabler.php:27
actionoptml_settings_updatedinc\compatibilities\cache_enabler.php:29
actionoptml_clear_cacheinc\compatibilities\cache_enabler.php:36
actionet_core_static_file_createdinc\compatibilities\divi_builder.php:28
actionoptml_settings_updatedinc\compatibilities\divi_builder.php:30
filteroptml_lazyload_bg_selectorsinc\compatibilities\divi_builder.php:32
actionelementor/frontend/after_enqueue_stylesinc\compatibilities\elementor_builder.php:25
filterelementor/frontend/builder_content/before_enqueue_css_fileinc\compatibilities\elementor_builder.php:27
filterelementor/frontend/builder_content/before_print_cssinc\compatibilities\elementor_builder.php:29
filteroptml_lazyload_bg_selectorsinc\compatibilities\elementor_builder.php:31
actionoptml_settings_updatedinc\compatibilities\elementor_builder.php:44
filterwp_get_attachment_image_srcinc\compatibilities\elementor_builder.php:83
filterwp_get_attachment_image_srcinc\compatibilities\elementor_builder.php:95
filterget_post_metadatainc\compatibilities\elementor_builder_late.php:25
filterget_post_metadatainc\compatibilities\elementor_builder_late.php:45
actionoptml_clear_cacheinc\compatibilities\endurance_cache.php:28
filteroptml_possible_lazyload_flagsinc\compatibilities\envira.php:29
filteroptml_parse_resize_from_taginc\compatibilities\envira.php:30
filterenvira_gallery_image_srcinc\compatibilities\envira.php:31
filteroptml_lazyload_bg_selectorsinc\compatibilities\essential_blocks.php:27
filteroptml_lazyload_bg_classesinc\compatibilities\essential_grid.php:26
filterfacetwp_ajax_responseinc\compatibilities\facetwp.php:23
actionfacetwp_inject_templateinc\compatibilities\facetwp.php:24
filteroptml_possible_src_attributesinc\compatibilities\foogallery.php:26
filteroptml_possible_lazyload_flagsinc\compatibilities\foogallery.php:27
filteroptml_should_ignore_image_tagsinc\compatibilities\give_wp.php:26
filteroptml_iframe_lazyload_flagsinc\compatibilities\give_wp.php:29
actionoptml_clear_cacheinc\compatibilities\hummingbird.php:27
filterjet-engine/ajax/listing_load_more/responseinc\compatibilities\jetengine.php:28
filterjetpack_sync_before_send_jetpack_published_postinc\compatibilities\jetpack.php:27
filteroptml_possible_lazyload_flagsinc\compatibilities\jet_elements.php:26
filteroptml_lazyload_bg_selectorsinc\compatibilities\kadence_blocks.php:28
actionoptml_clear_cacheinc\compatibilities\litespeed_cache.php:28
filteroptml_lazyload_bg_selectorsinc\compatibilities\master_slider.php:28
filteroptml_dont_replace_urlinc\compatibilities\master_slider.php:35
filteroptml_ignore_noscript_oninc\compatibilities\metaslider.php:26
filteroptml_possible_lazyload_flagsinc\compatibilities\metaslider.php:27
filteroptml_watcher_lz_classesinc\compatibilities\metaslider.php:28
filtermetaslider_coin_slider_image_attributesinc\compatibilities\metaslider.php:29
filteroptml_lazyload_bg_selectorsinc\compatibilities\metaslider.php:30
filteroptml_lazyload_bg_selectorsinc\compatibilities\otter_blocks.php:25
filterotter_apply_dynamic_imageinc\compatibilities\otter_blocks.php:40
filterrest_pre_dispatchinc\compatibilities\otter_blocks.php:43
actionwp_enqueue_scriptsinc\compatibilities\pinterest.php:42
filteroptml_possible_lazyload_flagsinc\compatibilities\revslider.php:26
filteroptml_ignore_data_opt_flaginc\compatibilities\revslider.php:27
filteroptml_lazyload_bg_classesinc\compatibilities\revslider.php:28
actionoptml_clear_cacheinc\compatibilities\rocketnet.php:27
actioninitinc\compatibilities\sg_optimizer.php:27
actionoptml_clear_cacheinc\compatibilities\sg_optimizer.php:35
filterdo_shortcode_taginc\compatibilities\shortcode_ultimate.php:41
filteroptml_default_cropinc\compatibilities\shortcode_ultimate.php:59
filteroptml_parse_resize_from_taginc\compatibilities\shortcode_ultimate.php:60
filterse_get_product_image_postinc\compatibilities\smart_search_woocommerce.php:24
actionoptml_clear_cacheinc\compatibilities\spc.php:27
filteruagb_block_attributes_for_css_and_jsinc\compatibilities\spectra.php:25
filteroptml_lazyload_bg_selectorsinc\compatibilities\spectra.php:27
actionoptml_clear_cacheinc\compatibilities\speedycache.php:28
filterswift_performance_bufferinc\compatibilities\swift_performance.php:25
filteroptml_lazyload_bg_selectorsinc\compatibilities\thrive.php:26
actionoptml_updated_postinc\compatibilities\thrive.php:37
actioninitinc\compatibilities\translate_press.php:25
filterw3tc_minify_processedinc\compatibilities\w3_total_cache.php:26
actionoptml_clear_cacheinc\compatibilities\w3_total_cache.php:29
filteroptml_lazyload_early_flagsinc\compatibilities\woocommerce.php:26
filteroptml_offload_duplicated_imagesinc\compatibilities\wpml.php:23
filteroptml_ensure_source_attachment_idinc\compatibilities\wpml.php:24
filterwpsp_image_attributesinc\compatibilities\wpsp.php:41
filterwpsp_default_image_sizeinc\compatibilities\wpsp.php:49
filteroptml_content_images_to_updateinc\compatibilities\wp_bakery.php:25
actionoptml_clear_cacheinc\compatibilities\wp_fastest_cache.php:25
filterwpfc_buffer_callback_filterinc\compatibilities\wp_fastest_cache.php:26
filterrest_pre_echo_responseinc\compatibilities\wp_rest_cache.php:24
actionoptml_clear_cacheinc\compatibilities\wp_rocket.php:28
actionoptml_clear_cacheinc\compatibilities\wp_super_cache.php:28
filterwoocommerce_single_product_image_thumbnail_htmlinc\compatibilities\yith_quick_view.php:26
filterall_pluginsinc\conflicts\conflicting_plugins.php:33
actionadmin_menuinc\dam.php:52
actionprint_media_templatesinc\dam.php:53
actionwp_enqueue_mediainc\dam.php:54
actionadmin_enqueue_scriptsinc\dam.php:55
filterwp_get_attachment_image_attributesinc\dam.php:62
filterwp_get_attachment_image_srcinc\dam.php:64
filterwp_get_attachment_metadatainc\dam.php:65
filterimage_downsizeinc\dam.php:66
filterwp_prepare_attachment_for_jsinc\dam.php:67
filterget_attached_fileinc\dam.php:68
filterwp_calculate_image_srcsetinc\dam.php:69
filterelementor/image_size/get_attachment_image_htmlinc\dam.php:71
actionwp_dashboard_setupinc\dashboard_widget.php:26
actionadmin_enqueue_scriptsinc\dashboard_widget.php:27
actionoptml_replacer_setupinc\lazyload_replacer.php:102
filteroptml_tag_replaceinc\lazyload_replacer.php:211
filteroptml_video_replaceinc\lazyload_replacer.php:213
filterthemeisle_sdk_productsinc\main.php:102
filterthemeisle_sdk_ran_promosinc\main.php:103
filteroptimole-wp_uninstall_feedback_iconinc\main.php:104
filteroptimole_wp_uninstall_feedback_after_cssinc\main.php:105
filteroptimole_wp_feedback_review_messageinc\main.php:106
filteroptimole_wp_logger_headinginc\main.php:107
filteroptml_register_conflictsinc\main.php:108
filteroptimole_wp_logger_datainc\main.php:109
actionafter_setup_themeinc\manager.php:142
actionwp_footerinc\manager.php:143
filterwp_lazy_loading_enabledinc\manager.php:392
filterthe_contentinc\manager.php:394
actiontemplate_redirectinc\manager.php:408
actionrest_api_initinc\manager.php:409
actionshutdowninc\manager.php:410
filterimage_downsizeinc\media_offload.php:153
filterwp_generate_attachment_metadatainc\media_offload.php:154
filterwp_get_attachment_urlinc\media_offload.php:155
filterwp_insert_post_datainc\media_offload.php:156
actiondelete_attachmentinc\media_offload.php:160
filterhandle_bulk_actions-uploadinc\media_offload.php:161
filtermedia_row_actionsinc\media_offload.php:164
filterwp_calculate_image_srcsetinc\media_offload.php:165
actionpost_updatedinc\media_offload.php:166
filterwp_insert_attachment_datainc\media_offload.php:171
filterwp_insert_attachment_datainc\media_offload.php:173
actionoptml_start_processing_imagesinc\media_offload.php:176
actionoptml_move_images_by_idinc\media_offload.php:177
actioninitinc\media_offload.php:186
filterupdate_attached_fileinc\media_offload.php:312
filterwp_prepare_attachment_for_jsinc\media_offload.php:2552
filterwp_get_attachment_metadatainc\media_offload.php:2553
filterwp_get_attachment_image_srcinc\media_offload.php:2554
filterfl_builder_render_cssinc\media_offload.php:2557
filterwp_insert_post_datainc\media_offload.php:2563
filterwp_insert_post_datainc\media_offload.php:2565
filtercontent_edit_preinc\media_offload.php:2569
actioninitinc\media_offload.php:2571
filterget_attached_fileinc\media_offload.php:2588
filterelementor/image_size/get_attachment_image_htmlinc\media_offload.php:2589
filterattachment_fields_to_editinc\media_rename\attachment_edit.php:18
filterattachment_fields_to_saveinc\media_rename\attachment_edit.php:19
actionedit_attachmentinc\media_rename\attachment_edit.php:21
actionoptml_after_attachment_url_replaceinc\media_rename\attachment_edit.php:22
actionoptml_attachment_replacedinc\media_rename\attachment_edit.php:23
actionadmin_enqueue_scriptsinc\media_rename\attachment_edit.php:26
filtermedia_row_actionsinc\media_rename\attachment_edit.php:27
actionrest_api_initinc\rest.php:172
filteroptml_dont_replace_urlinc\rest.php:537
filteroptml_dont_replace_urlinc\rest.php:607
actionplugins_loadedinc\settings.php:145
actionoptml_replacer_setupinc\tag_replacer.php:42
filteroptml_content_images_tagsinc\tag_replacer.php:53
filteroptml_tag_replaceinc\tag_replacer.php:56
filterimage_downsizeinc\tag_replacer.php:58
filterwp_calculate_image_srcsetinc\tag_replacer.php:59
filterwp_calculate_image_sizesinc\tag_replacer.php:60
filterwp_image_src_get_dimensionsinc\tag_replacer.php:61
filterwp_get_attachment_image_attributesinc\tag_replacer.php:63
actionoptml_replacer_setupinc\url_replacer.php:39
filteroptml_replace_imageinc\url_replacer.php:51
filteroptml_content_urlinc\url_replacer.php:54
filterwp_image_editorsinc\v2\Offload\Loader.php:31
actionenqueue_block_editor_assetsinc\video_player.php:67
actionadmin_headinc\video_player.php:68
actionwp_enqueue_scriptsinc\video_player.php:69
actioninitinc\video_player.php:70
actionadmin_noticesoptimole-wp.php:83
actionadmin_initoptimole-wp.php:84
Maintenance & Trust

Optimole – Optimize Images in Real Time Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 9, 2026
PHP min version7.4
Downloads7.7M

Community Trust

Rating94/100
Number of ratings629
Active installs200K
Developer Profile

Optimole – Optimize Images in Real Time Developer Profile

Optimole

2 plugins · 250K total installs

76
trust score
Avg Security Score
96/100
Avg Patch Time
137 days
View full developer profile
Detection Fingerprints

How We Detect Optimole – Optimize Images in Real Time

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/optimole-wp/optimole-wp.php/wp-content/plugins/optimole-wp/build/optml-admin.css/wp-content/plugins/optimole-wp/build/optml-app.js/wp-content/plugins/optimole-wp/build/optml-dashboard.js/wp-content/plugins/optimole-wp/build/optml-lazyload.js/wp-content/plugins/optimole-wp/build/optml-notice.js/wp-content/plugins/optimole-wp/build/optml-options.js/wp-content/plugins/optimole-wp/build/optml-utils.js+1 more
Generator Patterns
Image optimization service by Optimole
Script Paths
/wp-content/plugins/optimole-wp/build/optml-admin.js
Version Parameters
optimole-wp/build/optml-admin.css?ver=optimole-wp/build/optml-app.js?ver=optimole-wp/build/optml-dashboard.js?ver=optimole-wp/build/optml-lazyload.js?ver=optimole-wp/build/optml-notice.js?ver=optimole-wp/build/optml-options.js?ver=optimole-wp/build/optml-utils.js?ver=optimole-wp/inc/compatibilities/elementor.js?ver=

HTML / DOM Fingerprints

CSS Classes
optml-noticeoptml-dashboard-widgetoptml-settings-page
HTML Comments
<!-- Optimized by Optimole -->
Data Attributes
data-optml-original-srcdata-optml-srcdata-optml-placeholderdata-optml-background
JS Globals
Optmloptml_dashboard_argsoptml_app_argsoptml_notice_args
REST Endpoints
/wp-json/optimole-wp/v1/settings/wp-json/optimole-wp/v1/images
FAQ

Frequently Asked Questions about Optimole – Optimize Images in Real Time