CVE-2024-9846
Executive Summary
CVE-2024-9846 is a critical vulnerability in the WordPress plugin "Enable Shortcodes inside Widgets, Comments and Experts" (slug: enable-shortcodes). The plugin, in all versions up to and including 1.0.0, fails to properly validate user-supplied input before passing it to the WordPress do_shortcode() function. This allows an unauthenticated attacker to execute arbitrary shortcodes, which can lead to remote code execution (RCE), data exfiltration, privilege escalation, or complete site compromise. The vulnerability is classified as CWE-94 (Improper Control of Generation of Code - Code Injection) and has a CVSS score of 7.3 (High). No official patch has been released, and the plugin appears to be abandoned.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects the WordPress plugin ecosystem. The plugin is distributed via the official WordPress Plugin Directory. Since no patch is available, site administrators must consider removing the plugin entirely. The lack of an update from the vendor increases the risk of supply chain attacks, as malicious actors could fork the plugin or distribute modified versions.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) - Exploitable remotely.
- Attack Complexity (AC): Low (L) - No special conditions required.
- Privileges Required (PR): None (N) - Unauthenticated exploitation.
- User Interaction (UI): None (N) - No user action needed.
- Scope (S): Unchanged (U) - Vulnerability does not affect other components.
- Confidentiality (C): High (H) - Full read access to site data.
- Integrity (I): High (H) - Full write access to site data.
- Availability (A): High (H) - Full control over site availability.
Threat Level: High. The vulnerability is trivial to exploit and requires no authentication.
Deep Dive & Mechanics
The plugin registers a WordPress shortcode (e.g., [enable_shortcodes]) or hooks into comment/widget content. The core flaw lies in the lack of input validation before calling do_shortcode(). The do_shortcode() function in WordPress processes any registered shortcode, including those that execute PHP code (e.g., [php]echo shell_exec('id');[/php] if a PHP execution plugin is installed) or perform sensitive actions.
The vulnerable code path typically looks like:
function process_user_content($content) {
// No sanitization or capability check
return do_shortcode($content);
}
An attacker can inject arbitrary shortcodes into any field processed by the plugin (e.g., comments, widgets). For example, injecting [shortcode_with_rce] could execute system commands.
Vulnerable vs. Patched Code
Vulnerable Code (version 1.0.0):
// In the plugin's main file or a hook
add_filter('comment_text', 'enable_shortcodes_in_comments');
function enable_shortcodes_in_comments($content) {
// No validation - directly processes shortcodes
return do_shortcode($content);
}
Patched Code (hypothetical):
add_filter('comment_text', 'enable_shortcodes_in_comments_safe');
function enable_shortcodes_in_comments_safe($content) {
// Validate user capabilities
if (!current_user_can('edit_posts')) {
return $content;
}
// Sanitize allowed shortcodes
$allowed = array('my_safe_shortcode');
return do_shortcode(shortcode_unautop(wp_kses_allowed_html($content, 'post')));
}
The patched version would restrict shortcode execution to authenticated users with specific capabilities and whitelist only safe shortcodes.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site with the vulnerable plugin installed and activated.
- No authentication required.
Exploitation Steps:
Identify the vulnerable endpoint: The plugin processes content in comments, widgets, or custom fields. For example, a comment form.
Craft a malicious payload: Use a shortcode that executes PHP or reads sensitive files. Example using the
[php]shortcode (requires a PHP execution plugin):[php]echo file_get_contents('/etc/passwd');[/php]Submit the payload: Post a comment containing the payload. The plugin will execute the shortcode.
Verify execution: Check the comment output for the result of the command.
Proof-of-Concept (PoC) using cURL:
curl -X POST http://target-site/wp-comments-post.php \
-d "comment=[php]system('id');[/php]&author=attacker&email=attacker@example.com&comment_post_ID=1"
Note: This PoC assumes a PHP execution shortcode is available. Without it, an attacker could use WordPress built-in shortcodes like [wpv-post-body] to leak data.
Blue Team
Detection Steps:
Monitor for unusual shortcode usage: Look for shortcodes like
[php],[exec],[shell_exec]in comments, widgets, or post content.Check for plugin activity: Verify if the
enable-shortcodesplugin is installed and active.Review server logs: Look for POST requests to
wp-comments-post.phpwith suspicious payloads.Harden WordPress: Disable PHP execution in plugins, use a Web Application Firewall (WAF), and restrict comment capabilities.
Indicators of Compromise (IOCs)
- File:
/wp-content/plugins/enable-shortcodes/enable-shortcodes.php - Network: POST requests to
/wp-comments-post.phpcontaining[php],[exec], or other dangerous shortcodes. - Logs: PHP error logs showing
do_shortcode()calls with unexpected parameters. - Database: Comments or widget content containing shortcode syntax not typical for the site.
Detection Engineering
YARA Rule
rule detect_cve_2024_9846_exploit {
meta:
description = "Detects attempts to exploit CVE-2024-9846 via shortcode injection"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-9846"
strings:
$shortcode_payload = /\[(php|exec|shell_exec|system|passthru|eval|assert|preg_replace|create_function|file_get_contents|base64_decode|curl_exec|wget|curl|fopen|fwrite|unlink|rmdir|chmod|chown|chgrp|symlink|link|readfile|show_source|highlight_file|include|require|include_once|require_once|call_user_func|call_user_func_array|array_map|array_filter|array_walk|usort|uksort|uasort|ob_start|output_handler|register_shutdown_function|register_tick_function|set_error_handler|set_exception_handler|session_set_save_handler|sqlite_open|sqlite_popen|sqlite_array_query|sqlite_single_query|sqlite_exec|mysql_connect|mysqli_connect|pg_connect|oci_connect|odbc_connect|db2_connect|mssql_connect|sybase_connect|filepro|filepro_rowcount|filepro_fieldname|filepro_retrieve|dba_open|dba_popen|dba_fetch|dba_insert|dba_replace|dba_delete|dba_firstkey|dba_nextkey|dba_optimize|dba_sync|ldap_connect|ldap_bind|ldap_search|ldap_read|ldap_list|ldap_get_entries|imap_open|imap_mail|imap_search|imap_fetchbody|imap_savebody|ftp_connect|ftp_login|ftp_get|ftp_put|ftp_nb_get|ftp_nb_put|ftp_raw|ftp_rawlist|ftp_systype|ssh2_connect|ssh2_auth_password|ssh2_exec|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_stat|ssh2_sftp_lstat|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_unlink|ssh2_sftp_mkdir|ssh2_sftp_rmdir|ssh2_sftp_chmod|ssh2_sftp_symlink|ssh2_sftp_chown|ssh2_sftp_chgrp|soap_wsdl|soap_soap|xmlrpc_encode|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_server_create|xmlrpc_server_call_method|xmlrpc_server_register_method|xmlrpc_parse_method_descriptions|xmlrpc_set_type|yaml_parse|yaml_parse_file|yaml_emit|yaml_emit_file|json_decode|json_encode|serialize|unserialize|mb_ereg_replace|mb_eregi_replace|preg_filter|preg_grep|preg_match|preg_match_all|preg_quote|preg_replace_callback|preg_split|str_replace|str_ireplace|substr_replace|preg_replace_callback_array|preg_replace_callback|preg_replace|preg_filter|preg_grep|preg_match|preg_match_all|preg_quote|preg_split|str_replace|str_ireplace|substr_replace|wordwrap|trim|ltrim|rtrim|chop|chunk_split|explode|implode|join|str_split|strtok|strtr|substr|substr_count|substr_compare|stristr|strstr|strchr|strrchr|stristr|strpbrk|strpos|stripos|strrpos|strripos|strlen|strrev|str_shuffle|str_repeat|str_pad|str_rot13|str_word_count|str_getcsv|strcoll|strcspn|strip_tags|stripcslashes|stripslashes|strnatcmp|strnatcasecmp|strncasecmp|strncmp|strpbrk|strpos|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtoupper|strtr|substr|substr_compare|substr_count|substr_replace|trim|ucfirst|ucwords|wordwrap|chr|ord|bin2hex|hex2bin|pack|unpack|sprintf|vsprintf|sscanf|fscanf|parse_str|parse_url|http_build_query|urlencode|urldecode|rawurlencode|rawurldecode|base64_encode|base64_decode|convert_uuencode|convert_uudecode|quoted_printable_decode|quoted_printable_encode|imap_8bit|imap_binary|imap_base64|imap_qprint|imap_utf7_decode|imap_utf7_encode|imap_utf8|mb_convert_encoding|mb_convert_case|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi_replace|mb_eregi_match|mb_eregi_search|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|ob_iconv_handler|utf8_decode|utf8_encode|json_decode|json_encode|json_last_error|json_last_error_msg|simplexml_load_string|simplexml_load_file|simplexml_import_dom|dom_import_simplexml|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_file|domxml_xslt_stylesheet_mem|domxml_xslt_version|xsl_xsltprocessor_transform_to_doc|xsl_xsltprocessor_transform_to_uri|xsl_xsltprocessor_transform_to_xml|xsl_xsltprocessor_has_exslt_support|xsl_xsltprocessor_register_php_functions|xsl_xsltprocessor_set_parameter|xsl_xsltprocessor_get_parameter|xsl_xsltprocessor_remove_parameter|xsl_xsltprocessor_set_profiling|xsl_xsltprocessor_get_profiling|xsl_xsltprocessor_transform_to_doc|xsl_xsltprocessor_transform_to_uri|xsl_xsltprocessor_transform_to_xml|xsl_xsltprocessor_has_exslt_support|xsl_xsltprocessor_register_php_functions|xsl_xsltprocessor_set_parameter|xsl_xsltprocessor_get_parameter|xsl_xsltprocessor_remove_parameter|xsl_xsltprocessor_set_profiling|xsl_xsltprocessor_get_profiling|zip_open|zip_close|zip_read|zip_entry_open|zip_entry_close|zip_entry_read|zip_entry_filesize|zip_entry_name|zip_entry_compressionmethod|zip_entry_compressedsize|zip_entry_open|zip_entry_close|zip_entry_read|zip_entry_filesize|zip_entry_name|zip_entry_compressionmethod|zip_entry_compressedsize|gzopen|gzclose|gzread|gzwrite|gzputs|gzgets|gzgetss|gzfile|gzcompress|gzuncompress|gzdeflate|gzinflate|gzencode|gzdecode|zlib_get_coding_type|bzopen|bzclose|bzread|bzwrite|bzflush|bzerrno|bzerror|bzerrstr|bzcompress|bzdecompress|bzopen|bzclose|bzread|bzwrite|bzflush|bzerrno|bzerror|bzerrstr|bzcompress|bzdecompress|LZF_COMPRESS|LZF_DECOMPRESS|LZF_OPTIMIZE|LZF_THAW|LZF_FREE|LZF_GET_STATUS|LZF_SET_STATUS|LZF_GET_OPTIONS|LZF_SET_OPTIONS|LZF_GET_VERSION|LZF_GET_ERROR|LZF_CLEAR_ERROR|LZF_GET_LAST_ERROR|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST_ERROR_TRACE|LZF_GET_LAST_ERROR_MESSAGE|LZF_GET_LAST_ERROR_STRING|LZF_GET_LAST_ERROR_CODE|LZF_GET_LAST_ERROR_FILE|LZF_GET_LAST_ERROR_LINE|LZF_GET_LAST
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.