CompressX — AVIF & WebP Converter, Media Replacement Security & Risk Analysis

wordpress.org/plugins/compressx

AVIF & WebP converter with built-in media replacement for local image optimization.

40K active installs v0.9.38 PHP 7.0+ WP 5.8+ Updated May 27, 2026
avifconvert-avifconvert-webpoptimizationwebp
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Download
Safety Verdict

Is CompressX — AVIF & WebP Converter, Media Replacement Safe to Use in 2026?

Generally Safe

Score 100/100

CompressX — AVIF & WebP Converter, Media Replacement has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 3mo ago
Risk Assessment

The "compressx" v0.9.36 plugin presents a significant security risk primarily due to its extensive unprotected AJAX handlers. While the plugin demonstrates good practices in SQL query preparation and output escaping, the sheer number of AJAX entry points (67) that lack authentication checks creates a wide attack surface. This means an attacker could potentially trigger any of these AJAX actions without prior authorization, leading to unpredictable consequences depending on the specific functionality of each handler. The taint analysis shows a high number of flows with unsanitized paths (14 out of 16), but thankfully, these did not escalate to critical or high severity vulnerabilities in the static analysis. The absence of any known CVEs in its vulnerability history is a positive sign, suggesting a history of relatively stable code. However, the critical concern remains the lack of authorization on a vast majority of its entry points, which overshadows other positive aspects. Therefore, while the plugin doesn't exhibit critical code flaws like unescaped output or raw SQL, the unprotected AJAX handlers constitute a substantial security weakness that requires immediate attention.

Key Concerns

  • Unprotected AJAX handlers
  • Taint flows with unsanitized paths
  • Low nonce check coverage
  • Low capability check coverage
Vulnerabilities
None known

CompressX — AVIF & WebP Converter, Media Replacement Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

CompressX — AVIF & WebP Converter, Media Replacement Release Timeline

v0.9.38Current
v0.9.37
v0.9.36
v0.9.35
v0.9.34
v0.9.33
v0.9.32
v0.9.31
v0.9.30
v0.9.29
v0.9.28
v0.9.27
v0.9.26
v0.9.25
v0.9.24
v0.9.23
v0.9.22
v0.9.21
v0.9.20
v0.9.19
Code Analysis
Analyzed Mar 16, 2026

CompressX — AVIF & WebP Converter, Media Replacement Code Analysis

Dangerous Functions
0
Raw SQL Queries
10
56 prepared
Unescaped Output
101
575 escaped
Nonce Checks
1
Capability Checks
4
File Operations
54
External Requests
4
Bundled Libraries
0

SQL Query Safety

85% prepared66 total queries

Output Escaping

85% escaped676 total outputs
Data Flows · Security
14 unsanitized

Data Flow Analysis

16 flows14 with unsanitized paths
start_scan_unoptimized_image (includes\display\class-compressx-bulk-action.php:15)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
67 unprotected

CompressX — AVIF & WebP Converter, Media Replacement Attack Surface

Entry Points67
Unprotected67

AJAX Handlers 67

authwp_ajax_compressx_opt_single_imageincludes\class-compressx-manual-optimization.php:10
authwp_ajax_compressx_delete_single_imageincludes\class-compressx-manual-optimization.php:12
authwp_ajax_compressx_start_statsincludes\class-compressx-stats-manager.php:15
authwp_ajax_compressx_get_statsincludes\class-compressx-stats-manager.php:16
authwp_ajax_compressx_continue_statsincludes\class-compressx-stats-manager.php:17
authwp_ajax_compressx_dissmiss_conflict_noticeincludes\class-compressx.php:57
authwp_ajax_compressx_start_scan_unoptimized_imageincludes\display\class-compressx-bulk-action.php:9
authwp_ajax_compressx_init_bulk_optimization_taskincludes\display\class-compressx-bulk-action.php:10
authwp_ajax_compressx_run_optimizeincludes\display\class-compressx-bulk-action.php:11
authwp_ajax_compressx_get_opt_progressincludes\display\class-compressx-bulk-action.php:12
authwp_ajax_compressx_save_cdnincludes\display\class-compressx-cdn.php:8
authwp_ajax_compressx_purge_cacheincludes\display\class-compressx-cdn.php:9
authwp_ajax_compressx_get_custom_tree_dir_exincludes\display\class-compressx-custom-bulk-action.php:16
authwp_ajax_compressx_add_include_foldersincludes\display\class-compressx-custom-bulk-action.php:17
authwp_ajax_compressx_remove_include_foldersincludes\display\class-compressx-custom-bulk-action.php:18
authwp_ajax_compressx_start_scan_custom_imagesincludes\display\class-compressx-custom-bulk-action.php:20
authwp_ajax_compressx_init_custom_bulk_optimization_taskincludes\display\class-compressx-custom-bulk-action.php:21
authwp_ajax_compressx_run_custom_optimizeincludes\display\class-compressx-custom-bulk-action.php:22
authwp_ajax_compressx_get_custom_opt_progressincludes\display\class-compressx-custom-bulk-action.php:23
authwp_ajax_compressx_get_dir_infoincludes\display\class-compressx-custom-bulk-action.php:24
authwp_ajax_compressx_get_opt_single_image_progressincludes\display\class-compressx-custom-media-lib.php:16
authwp_ajax_compressx_set_general_settingsincludes\display\class-compressx-dashboard.php:8
authwp_ajax_compressx_save_others_settingincludes\display\class-compressx-dashboard.php:9
authwp_ajax_compressx_save_size_settingincludes\display\class-compressx-dashboard.php:10
authwp_ajax_compressx_get_custom_tree_dirincludes\display\class-compressx-dashboard.php:12
authwp_ajax_compressx_add_exclude_foldersincludes\display\class-compressx-dashboard.php:13
authwp_ajax_compressx_add_exclude_folderincludes\display\class-compressx-dashboard.php:14
authwp_ajax_compressx_remove_exclude_foldersincludes\display\class-compressx-dashboard.php:16
authwp_ajax_compressx_delete_filesincludes\display\class-compressx-dashboard.php:18
authwp_ajax_compressx_update_overviewincludes\display\class-compressx-dashboard.php:20
authwp_ajax_compressx_hide_noticeincludes\display\class-compressx-dashboard.php:22
authwp_ajax_compressx_rating_dismissincludes\display\class-compressx-dashboard.php:23
authwp_ajax_compressx_get_latest_image_dataincludes\display_v2\class-compressx-bulk-optimization-display.php:8
authwp_ajax_compressx_start_scan_unoptimized_imageincludes\display_v2\class-compressx-bulk-optimization-display.php:10
authwp_ajax_compressx_init_bulk_optimization_taskincludes\display_v2\class-compressx-bulk-optimization-display.php:11
authwp_ajax_compressx_run_optimizeincludes\display_v2\class-compressx-bulk-optimization-display.php:13
authwp_ajax_compressx_get_opt_progressincludes\display_v2\class-compressx-bulk-optimization-display.php:14
authwp_ajax_compressx_get_task_logincludes\display_v2\class-compressx-bulk-optimization-display.php:15
authwp_ajax_compressx_download_task_logincludes\display_v2\class-compressx-bulk-optimization-display.php:16
authwp_ajax_compressx_save_cdnincludes\display_v2\class-compressx-cdn-display.php:8
authwp_ajax_compressx_purge_cacheincludes\display_v2\class-compressx-cdn-display.php:9
authwp_ajax_compressx_get_custom_tree_dir_exincludes\display_v2\class-compressx-custom-bulk-action-v2.php:16
authwp_ajax_compressx_add_include_foldersincludes\display_v2\class-compressx-custom-bulk-action-v2.php:17
authwp_ajax_compressx_remove_include_foldersincludes\display_v2\class-compressx-custom-bulk-action-v2.php:18
authwp_ajax_compressx_start_scan_custom_imagesincludes\display_v2\class-compressx-custom-bulk-action-v2.php:20
authwp_ajax_compressx_init_custom_bulk_optimization_taskincludes\display_v2\class-compressx-custom-bulk-action-v2.php:21
authwp_ajax_compressx_run_custom_optimizeincludes\display_v2\class-compressx-custom-bulk-action-v2.php:22
authwp_ajax_compressx_get_custom_opt_progressincludes\display_v2\class-compressx-custom-bulk-action-v2.php:23
authwp_ajax_compressx_get_dir_infoincludes\display_v2\class-compressx-custom-bulk-action-v2.php:24
authwp_ajax_compressx_save_image_optimization_settingsincludes\display_v2\class-compressx-image-optimization-display.php:12
authwp_ajax_compressx_rating_dismissincludes\display_v2\class-compressx-image-optimization-display.php:13
authwp_ajax_compressx_hide_big_update_v2includes\display_v2\class-compressx-image-optimization-display.php:15
authwp_ajax_compressx_save_media_replace_settingincludes\display_v2\class-compressx-media-replace-display.php:10
authwp_ajax_compressx_replace_mediaincludes\display_v2\class-compressx-media-replace-display.php:11
authwp_ajax_compressx_get_custom_tree_dirincludes\display_v2\class-compressx-settings-display.php:8
authwp_ajax_compressx_add_exclude_foldersincludes\display_v2\class-compressx-settings-display.php:9
authwp_ajax_compressx_add_exclude_folderincludes\display_v2\class-compressx-settings-display.php:10
authwp_ajax_compressx_remove_exclude_foldersincludes\display_v2\class-compressx-settings-display.php:12
authwp_ajax_compressx_v2_save_settingsincludes\display_v2\class-compressx-settings-display.php:14
authwp_ajax_compressx_delete_filesincludes\display_v2\class-compressx-settings-display.php:15
authwp_ajax_compressx_open_logincludes\display_v2\class-compressx-system-info-display.php:8
authwp_ajax_compressx_download_logincludes\display_v2\class-compressx-system-info-display.php:9
authwp_ajax_compressx_delete_logincludes\display_v2\class-compressx-system-info-display.php:10
authwp_ajax_compressx_delete_all_logincludes\display_v2\class-compressx-system-info-display.php:11
authwp_ajax_compressx_get_logs_listincludes\display_v2\class-compressx-system-info-display.php:12
authwp_ajax_compressx_create_debug_packageincludes\display_v2\class-compressx-system-info-display.php:13
authwp_ajax_compressx_send_debug_infoincludes\display_v2\class-compressx-system-info-display.php:14
WordPress Hooks 37
actionadd_attachmentincludes\class-compressx-auto-optimization.php:13
filterwp_generate_attachment_metadataincludes\class-compressx-auto-optimization.php:14
filterwp_update_attachment_metadataincludes\class-compressx-auto-optimization.php:15
filtercompressx_allowed_image_auto_optimizationincludes\class-compressx-auto-optimization.php:17
filterintermediate_image_sizes_advancedincludes\class-compressx-media-replace.php:313
actiontemplate_redirectincludes\class-compressx-picture-load.php:30
actionwp_enqueue_scriptsincludes\class-compressx-picture-load.php:31
actiondelete_attachmentincludes\class-compressx.php:52
actioncompressx_purge_cache_eventincludes\class-compressx.php:58
actioncompressx_purge_cacheincludes\class-compressx.php:59
actioncompressx_after_optimize_imageincludes\class-compressx.php:60
actionadmin_noticesincludes\class-compressx.php:76
actionin_admin_headerincludes\class-compressx.php:77
actionadmin_noticesincludes\class-compressx.php:115
actioninitincludes\class-compressx.php:123
actioncx_output_custom_bulkincludes\display\class-compressx-custom-bulk-action.php:26
filtermanage_media_columnsincludes\display\class-compressx-custom-media-lib.php:11
actionmanage_media_custom_columnincludes\display\class-compressx-custom-media-lib.php:12
actionattachment_submitbox_misc_actionsincludes\display\class-compressx-custom-media-lib.php:13
filterwp_prepare_attachment_for_jsincludes\display\class-compressx-custom-media-lib.php:14
actioncompressx_output_reviewincludes\display\class-compressx-dashboard.php:25
actioncompressx_output_noticeincludes\display\class-compressx-dashboard.php:26
actionadmin_enqueue_scriptsincludes\display\class-compressx-display.php:96
actionadmin_enqueue_scriptsincludes\display\class-compressx-display.php:97
actioncompressx_output_navincludes\display\class-compressx-display.php:99
actioncompressx_output_headerincludes\display\class-compressx-display.php:100
actioncompressx_output_footerincludes\display\class-compressx-display.php:101
actionnetwork_admin_menuincludes\display\class-compressx-display.php:105
actionadmin_menuincludes\display\class-compressx-display.php:109
actionadmin_menuincludes\display\class-compressx-display.php:110
actionsubmenu_fileincludes\display\class-compressx-display.php:111
actioncx_output_custom_bulkincludes\display_v2\class-compressx-custom-bulk-action-v2.php:26
actioncompressx_output_review_v2includes\display_v2\class-compressx-image-optimization-display.php:11
filtermedia_row_actionsincludes\display_v2\class-compressx-media-replace-display.php:13
actionadd_meta_boxes_attachmentincludes\display_v2\class-compressx-media-replace-display.php:14
filterattachment_fields_to_editincludes\display_v2\class-compressx-media-replace-display.php:15
filterupload_dirincludes\display_v2\class-compressx-media-replace-display.php:699

Scheduled Events 1

compressx_purge_cache_event
Maintenance & Trust

CompressX — AVIF & WebP Converter, Media Replacement Maintenance & Trust

Maintenance Signals

WordPress version tested7.0.2
Last updatedMay 27, 2026
PHP min version7.0
Downloads302K

Community Trust

Rating100/100
Number of ratings189
Active installs40K
Developer Profile

CompressX — AVIF & WebP Converter, Media Replacement Developer Profile

CompressX

1 plugin · 40K total installs

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

How We Detect CompressX — AVIF & WebP Converter, Media Replacement

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/compressx/assets/css/compressx.css/wp-content/plugins/compressx/assets/js/compressx.js/wp-content/plugins/compressx/assets/js/compressx-picture-load.js
Script Paths
/wp-content/plugins/compressx/assets/js/compressx.js/wp-content/plugins/compressx/assets/js/compressx-picture-load.js
Version Parameters
compressx/assets/css/compressx.css?ver=compressx/assets/js/compressx.js?ver=compressx/assets/js/compressx-picture-load.js?ver=

HTML / DOM Fingerprints

CSS Classes
compressx-main-body
Data Attributes
data-compressx-auto-convert
JS Globals
compressx_data
FAQ

Frequently Asked Questions about CompressX — AVIF & WebP Converter, Media Replacement