Flexible EAN for WooCommerce Security & Risk Analysis

wordpress.org/plugins/flexible-ean-for-woocommerce

The Flexible EAN for WooCommerce plugin can save the EAN barcode for simple and variable products.

100 active installs v2.0.11 PHP 7.4+ WP 5.8+ Updated Jan 15, 2026
barcodeeangtinwoocommerce-barcodewoocommerce-ean
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Flexible EAN for WooCommerce Safe to Use in 2026?

Generally Safe

Score 100/100

Flexible EAN for WooCommerce has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 2mo ago
Risk Assessment

The flexible-ean-for-woocommerce plugin, version 2.0.11, exhibits a generally good security posture, particularly concerning its limited attack surface and the absence of known critical vulnerabilities. The plugin demonstrates a commitment to security with a sufficient number of nonce and capability checks across its entry points. The limited number of AJAX handlers and REST API routes, coupled with the absence of unauthenticated handlers, significantly reduces the potential for direct exploitation. Furthermore, the complete lack of recorded CVEs and the absence of high or critical severity taint flows suggest a well-maintained and secure codebase.

However, there are areas for improvement. The presence of dangerous functions like `unserialize`, `proc_open`, and `shell_exec` is a significant concern, as these functions can introduce severe security risks if not handled with extreme caution and robust input validation. Additionally, a relatively low percentage of output escaping (29%) indicates a potential for Cross-Site Scripting (XSS) vulnerabilities. While taint analysis did not reveal immediate exploitable paths in this scan, the combination of dangerous functions and poor output escaping creates a latent risk that could be exploited by attackers finding specific input vectors.

In conclusion, the plugin's strengths lie in its controlled attack surface and lack of historical security incidents. However, the identified dangerous functions and the concerningly low rate of output escaping represent significant potential weaknesses that should be addressed to further harden the plugin's security. Proactive code review focusing on the usage of `unserialize`, `proc_open`, and `shell_exec`, along with implementing proper output escaping for all dynamic content, would greatly enhance the plugin's overall security.

Key Concerns

  • Dangerous functions (unserialize, proc_open, shell_exec)
  • Low output escaping percentage (29%)
Vulnerabilities
None known

Flexible EAN for WooCommerce Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

Flexible EAN for WooCommerce Code Analysis

Dangerous Functions
6
Raw SQL Queries
2
4 prepared
Unescaped Output
173
71 escaped
Nonce Checks
8
Capability Checks
6
File Operations
28
External Requests
3
Bundled Libraries
0

Dangerous Functions Found

unserialize$serializable = unserialize($signature['serializable']);vendor_prefixed\laravel\serializable-closure\src\Serializers\Signed.php:76
proc_open$this->process = proc_open($this->command, static::DESCRIPTOR_SPEC, $this->pipes, $this->cwd);vendor_prefixed\monolog\monolog\src\Monolog\Handler\ProcessHandler.php:104
shell_exec$branches = shell_exec('git branch -v --no-abbrev');vendor_prefixed\monolog\monolog\src\Monolog\Processor\GitProcessor.php:60
shell_exec$result = explode(' ', trim((string) shell_exec('hg id -nb')));vendor_prefixed\monolog\monolog\src\Monolog\Processor\MercurialProcessor.php:59
unserializereturn unserialize($value);vendor_prefixed\wpdesk\wp-forms\src\Serializer\SerializeSerializer.php:15
unserializereturn unserialize($this->container->get($id));vendor_prefixed\wpdesk\wp-persistence\src\Decorator\SerializedPersistentContainer.php:24

SQL Query Safety

67% prepared6 total queries

Output Escaping

29% escaped244 total outputs
Data Flows
All sanitized

Data Flow Analysis

2 flows
processAjaxNoticeDismiss (vendor_prefixed\wpdesk\wp-notice\src\WPDesk\Notice\AjaxHandler.php:72)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Flexible EAN for WooCommerce Attack Surface

Entry Points2
Unprotected0

AJAX Handlers 1

authwp_ajax_wpdesk_notice_dismissvendor_prefixed\wpdesk\wp-notice\src\WPDesk\Notice\AjaxHandler.php:42

Shortcodes 1

[flexible_ean] src\Action\Hook\Product\EANShortcode.php:24
WordPress Hooks 42
filterwoocommerce_screen_idssrc\Action\Hook\Assets\AssetsLoader.php:31
actionadmin_enqueue_scriptssrc\Action\Hook\Assets\AssetsLoader.php:32
actionwp_enqueue_scriptssrc\Action\Hook\Assets\AssetsLoader.php:33
actionadmin_menusrc\Action\Hook\Page\SettingsPage.php:36
actionadmin_initsrc\Action\Hook\Page\SettingsPage.php:37
actionadmin_noticessrc\Action\Hook\Page\SettingsPage.php:91
filtermanage_product_posts_columnssrc\Action\Hook\Product\EANColumnLoader.php:25
actionmanage_product_posts_custom_columnsrc\Action\Hook\Product\EANColumnLoader.php:26
actionwoocommerce_product_options_skusrc\Action\Hook\Product\EANFieldLoader.php:47
actionwoocommerce_variation_options_pricingsrc\Action\Hook\Product\EANFieldLoader.php:48
actionsave_post_productsrc\Action\Hook\Product\EANFieldSaver.php:29
actionwoocommerce_save_product_variationsrc\Action\Hook\Product\EANFieldSaver.php:30
actionwoocommerce_product_meta_startsrc\Action\Hook\Product\EANFrontendLoader.php:35
filterwoocommerce_available_variationsrc\Action\Hook\Product\EANFrontendLoader.php:36
actionwoocommerce_after_cart_item_namesrc\Action\Hook\Product\EANFrontendLoader.php:40
filterwoocommerce_get_item_datasrc\Action\Hook\Product\EANFrontendLoader.php:44
actionwoocommerce_after_shop_loop_item_titlesrc\Action\Hook\Product\EANFrontendLoader.php:48
actionwoocommerce_order_item_meta_endsrc\Action\Hook\Product\EANFrontendLoader.php:52
filterwoocommerce_structured_data_productsrc\Action\Hook\Product\EANStructuredData.php:31
actionwp_dashboard_setupvendor_prefixed\wpdesk\ltv-dashboard-widget\src\DashboardWidget.php:102
actionadmin_enqueue_scriptsvendor_prefixed\wpdesk\wp-builder\src\Plugin\AbstractPlugin.php:148
actionwp_enqueue_scriptsvendor_prefixed\wpdesk\wp-builder\src\Plugin\AbstractPlugin.php:149
actionbefore_woocommerce_initvendor_prefixed\wpdesk\wp-init\src\Extension\CommonBinding\CustomOrdersTableCompatibility.php:17
actionplugins_loadedvendor_prefixed\wpdesk\wp-init\src\Extension\CommonBinding\I18n.php:20
actionplugins_loadedvendor_prefixed\wpdesk\wp-init\src\HookDriver\LegacyDriver.php:25
actionadmin_enqueue_scriptsvendor_prefixed\wpdesk\wp-notice\src\WPDesk\Notice\AjaxHandler.php:41
actionadmin_noticesvendor_prefixed\wpdesk\wp-notice\src\WPDesk\Notice\Notice.php:144
actionadmin_footervendor_prefixed\wpdesk\wp-notice\src\WPDesk\Notice\Notice.php:145
filterwp_autoloader_loader_loaders_to_loadvendor_prefixed\wpdesk\wp-plugin-flow-common\src\Initialization\PluginDisablerByFileTrait.php:45
filterwp_autoloader_loader_loaders_to_createvendor_prefixed\wpdesk\wp-plugin-flow-common\src\Initialization\PluginDisablerByFileTrait.php:46
actionplugins_loadedvendor_prefixed\wpdesk\wp-plugin-flow-common\src\Initialization\Simple\SimplePaidStrategy.php:58
actionplugins_loadedvendor_prefixed\wpdesk\wp-plugin-flow-common\src\PluginBootstrap.php:81
actionbefore_woocommerce_initvendor_prefixed\wpdesk\wp-plugin-flow-common\src\PluginBootstrap.php:88
actionactivated_pluginvendor_prefixed\wpdesk\wp-plugin-flow-common\src\PluginBootstrap.php:102
filterdoing_it_wrong_trigger_errorvendor_prefixed\wpdesk\wp-plugin-flow-common\src\PluginBootstrap.php:123
actionadmin_enqueue_scriptsvendor_prefixed\wpdesk\wp-wpdesk-marketing\src\Boxes\Assets.php:16
actionadmin_enqueue_scriptsvendor_prefixed\wpdesk\wp-wpdesk-marketing\src\Boxes\Assets.php:30
actionadmin_enqueue_scriptsvendor_prefixed\wpdesk\wp-wpdesk-tracker\src\PSR\WPDesk\Tracker\Assets.php:28
actionadmin_menuvendor_prefixed\wpdesk\wp-wpdesk-tracker\src\PSR\WPDesk\Tracker\OptInPage.php:35
actionadmin_initvendor_prefixed\wpdesk\wp-wpdesk-tracker\src\PSR\WPDesk\Tracker\OptInPage.php:36
actionadmin_noticesvendor_prefixed\wpdesk\wp-wpdesk-tracker\src\PSR\WPDesk\Tracker\OptOut.php:28
filterplugin_row_metavendor_prefixed\wpdesk\wp-wpdesk-tracker\src\PSR\WPDesk\Tracker\PluginActionLinks.php:36
Maintenance & Trust

Flexible EAN for WooCommerce Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedJan 15, 2026
PHP min version7.4
Downloads4K

Community Trust

Rating30/100
Number of ratings2
Active installs100
Developer Profile

Flexible EAN for WooCommerce Developer Profile

wpdesk

23 plugins · 127K total installs

78
trust score
Avg Security Score
99/100
Avg Patch Time
135 days
View full developer profile
Detection Fingerprints

How We Detect Flexible EAN for WooCommerce

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/flexible-ean-for-woocommerce/assets/css/admin.css/wp-content/plugins/flexible-ean-for-woocommerce/assets/js/admin.js/wp-content/plugins/flexible-ean-for-woocommerce/assets/css/frontend.css/wp-content/plugins/flexible-ean-for-woocommerce/assets/js/frontend.js/wp-content/plugins/flexible-ean-for-woocommerce/assets/js/qrcode.js/wp-content/plugins/flexible-ean-for-woocommerce/assets/js/vue/dist/app.js/wp-content/plugins/flexible-ean-for-woocommerce/assets/css/vue/dist/style.css
Script Paths
/wp-content/plugins/flexible-ean-for-woocommerce/assets/js/admin.js/wp-content/plugins/flexible-ean-for-woocommerce/assets/js/frontend.js/wp-content/plugins/flexible-ean-for-woocommerce/assets/js/qrcode.js/wp-content/plugins/flexible-ean-for-woocommerce/assets/js/vue/dist/app.js
Version Parameters
flexible-ean-for-woocommerce/assets/css/admin.css?ver=flexible-ean-for-woocommerce/assets/js/admin.js?ver=flexible-ean-for-woocommerce/assets/css/frontend.css?ver=flexible-ean-for-woocommerce/assets/js/frontend.js?ver=flexible-ean-for-woocommerce/assets/js/qrcode.js?ver=flexible-ean-for-woocommerce/assets/js/vue/dist/app.js?ver=flexible-ean-for-woocommerce/assets/css/vue/dist/style.css?ver=

HTML / DOM Fingerprints

CSS Classes
ean_generator_buttonean_input_field
Data Attributes
data-product-iddata-barcode-typedata-ean-value
JS Globals
window.wpdesk_flexible_ean_adminwindow.wpdesk_flexible_ean_frontend
FAQ

Frequently Asked Questions about Flexible EAN for WooCommerce