Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 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.4 PHP 7.4+ WP 5.5+ Updated Apr 13, 2026
convert-webpimage-optimizationimage-optimizerlazy-loadoptimize-images
92
A · Safe
CVEs total5
Unpatched0
Last CVEApr 10, 2026
Download
Safety Verdict

Is Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization Safe to Use in 2026?

Generally Safe

Score 92/100

Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

5 known CVEsLast CVE: Apr 10, 2026Updated 1mo 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
5 published

Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization Security Vulnerabilities

CVEs by Year

1 CVE in 2022
2022
1 CVE in 2024
2024
1 CVE in 2025
2025
2 CVEs in 2026
2026
Patched Has unpatched

Severity Breakdown

High
1
Medium
4

5 total CVEs

CVE-2026-5217high · 7.2Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Optimole <= 4.2.2 - Unauthenticated Stored Cross-Site Scripting via Srcset Descriptor Parameter

Apr 10, 2026 Patched in 4.2.3 (1d)
CVE-2026-5226medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Optimole <= 4.2.3 - Reflected Cross-Site Scripting via Page Profiler URL

Apr 10, 2026 Patched in 4.2.4 (3d)
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)
Version History

Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization Release Timeline

v4.2.4Current13 files changed
v4.2.31 CVE11 files changed
v4.2.22 CVEs12 files changed
v4.2.12 CVEs5 files changed
v4.2.02 CVEs26 files changed
v4.1.52 CVEs10 files changed
v4.1.42 CVEs7 files changed
v4.1.32 CVEs7 files changed
v4.1.22 CVEs8 files changed
v4.1.12 CVEs6 files changed
v4.1.03 CVEs74 files changed
v4.0.43 CVEs38 files changed
v4.0.33 CVEs4 files changed
v4.0.23 CVEs11 files changed
v4.0.13 CVEs11 files changed
v4.0.03 CVEs72 files changed
v3.14.13 CVEs7 files changed
v3.14.03 CVEs22 files changed
v3.13.93 CVEs13 files changed
Code Analysis
Analyzed Mar 16, 2026

Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 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 · Security
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 | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 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 | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedApr 13, 2026
PHP min version7.4
Downloads7.9M

Community Trust

Rating94/100
Number of ratings630
Active installs200K
Developer Profile

Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization Developer Profile

Optimole

2 plugins · 260K total installs

75
trust score
Avg Security Score
94/100
Avg Patch Time
98 days
View full developer profile
Detection Fingerprints

How We Detect Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization

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 | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization