Skip to main content
CVE Vulnerability Database

CVE-2026-8661: Rapid7 InsightConnect Markdown SSRF Flaw

CVE-2026-8661 is a Server-Side Request Forgery vulnerability in Rapid7 InsightConnect Markdown Plugin that lets attackers execute JavaScript and make unauthorized HTTP requests. This article covers affected versions, impact, and mitigation.

Published:

CVE-2026-8661 Overview

CVE-2026-8661 is a server-side Cross-Site Scripting (XSS) and Server-Side Request Forgery (SSRF) vulnerability in the markdown_to_pdf action of the Rapid7 InsightConnect Markdown Plugin version 3.1.4 and earlier on Linux. The PDF rendering engine used by the plugin does not restrict JavaScript execution or outbound network access when processing Markdown input. Remote attackers can embed crafted content in Markdown to execute JavaScript in the server-side rendering context and initiate arbitrary outbound HTTP requests. The issue is tracked under CWE-79.

Critical Impact

Attackers can execute server-side JavaScript and issue arbitrary outbound HTTP requests from the plugin host, enabling internal reconnaissance and data exfiltration through crafted Markdown payloads.

Affected Products

  • Rapid7 InsightConnect Markdown Plugin version 3.1.4 and earlier
  • Deployments running on Linux
  • The markdown_to_pdf action within the plugin

Discovery Timeline

  • 2026-06-26 - CVE-2026-8661 published to the National Vulnerability Database (NVD)
  • 2026-06-26 - Last updated in NVD database

Technical Details for CVE-2026-8661

Vulnerability Analysis

The vulnerability resides in the markdown_to_pdf action of the InsightConnect Markdown Plugin. The action converts user-supplied Markdown into a PDF using a rendering engine that permits inline scripting and unrestricted network requests. Because the engine does not sandbox execution, HTML elements such as <script> tags or event handlers embedded within Markdown execute on the server. The same permissive configuration allows the renderer to fetch remote resources, giving attackers an SSRF primitive through elements that trigger outbound HTTP requests. The attack is network-reachable and requires no authentication, though the attack complexity is elevated because the attacker must control the Markdown input processed by the plugin.

Root Cause

The root cause is insecure configuration of the PDF rendering engine invoked by markdown_to_pdf. Script execution is enabled by default and no allowlist or block on outbound network access is applied. Markdown allows raw HTML pass-through, so any HTML or script content embedded in the input is preserved and evaluated during PDF generation. There is no output sanitization step between Markdown parsing and PDF rendering.

Attack Vector

An attacker submits Markdown containing HTML script constructs or resource-loading elements to a workflow that calls the markdown_to_pdf action. When the plugin renders the document, the embedded script executes within the rendering process on the host. The same payload can reference internal or external URLs, causing the plugin to issue HTTP requests to attacker-chosen destinations. This exposes internal network services reachable from the plugin host and enables exfiltration of data accessible to the rendering context.

See the GitHub Markdown Help Documentation and GitHub Pull Request #3721 for the technical fix and behavior details.

Detection Methods for CVE-2026-8661

Indicators of Compromise

  • Outbound HTTP or HTTPS connections from the InsightConnect plugin host to unexpected external or internal destinations correlated with markdown_to_pdf executions.
  • PDF artifacts produced by the plugin containing embedded <script>, <iframe>, or event-handler attributes such as onload and onerror.
  • Workflow inputs containing raw HTML, <script> tags, or data:/file: URI schemes passed to the Markdown plugin.

Detection Strategies

  • Inspect Markdown workflow inputs for raw HTML constructs and script tags before they reach the markdown_to_pdf action.
  • Correlate plugin process activity with unexpected DNS lookups or HTTP requests originating from the plugin host during rendering.
  • Review InsightConnect audit logs for markdown_to_pdf invocations that immediately precede anomalous network egress.

Monitoring Recommendations

  • Enable egress monitoring on the plugin host and alert on connections to internal metadata endpoints or non-approved external hosts.
  • Log all markdown_to_pdf inputs and hash them for retrospective analysis if suspicious egress is detected.
  • Baseline normal rendering duration and outbound traffic volume, then alert on deviations that may indicate script execution or SSRF activity.

How to Mitigate CVE-2026-8661

Immediate Actions Required

  • Upgrade the Rapid7 InsightConnect Markdown Plugin to a version later than 3.1.4 that includes the fix from Pull Request #3721.
  • Restrict which users and workflows can invoke the markdown_to_pdf action until the patched version is deployed.
  • Audit historical workflow runs that used markdown_to_pdf for signs of malicious Markdown input.

Patch Information

Rapid7 addressed the vulnerability in the Markdown plugin through GitHub Pull Request #3721. Upgrade to a plugin version that includes this change. Consult the plugin help documentation for the current supported release and configuration guidance.

Workarounds

  • Sanitize Markdown input upstream of the plugin by stripping raw HTML, <script> tags, and event-handler attributes before submission.
  • Apply egress firewall rules to the plugin host that permit only required destinations, blocking SSRF pivots to internal services and metadata endpoints.
  • Disable or gate the markdown_to_pdf action in workflows that accept untrusted Markdown until the plugin is upgraded.
bash
# Example egress restriction using iptables to block outbound HTTP from the plugin host
# Allow only approved destinations, drop everything else
iptables -A OUTPUT -d 10.0.0.0/8 -j DROP
iptables -A OUTPUT -d 172.16.0.0/12 -j DROP
iptables -A OUTPUT -d 192.168.0.0/16 -j DROP
iptables -A OUTPUT -d 169.254.169.254 -j DROP
iptables -A OUTPUT -p tcp --dport 80 -d <approved-host> -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -d <approved-host> -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A OUTPUT -p tcp --dport 443 -j DROP

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.