CVE-2026-105636: Plane webhook delivery SSRF via redirect bypass

CVE-2026-105636 · Severity: critical · CVSS 9.9 · Published 2026-10-05

Plane is an open-source project management tool that allows teams to organize work and integrate with external services via webhooks. A user with workspace access can register a webhook pointing to an attacker-controlled server that redirects to internal resources like cloud metadata endpoints. The Plane background worker follows redirects without validating the final destination, allowing the attacker to exfiltrate sensitive internal data through the webhook logs API.

Technologies: Plane. Vendors: Plane.

Quick answers

Is CVE-2026-105636 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-105636 being exploited in the wild.
How severe is CVE-2026-105636?
Critical severity, with a CVSS score of 9.9, published 5 October 2026.
Which products and versions are affected?
Plane before 1.4.0.
Is there a fix for CVE-2026-105636?
Yes: fixed in 1.4.0. Until then: Restrict webhook creation to trusted users or disable webhooks entirely until upgrading. Implement network-level egress filtering to block requests from worker processes to internal IP ranges. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-105636 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-105636?
Check whether you run Plane at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: 1.4.0

Restrict webhook creation to trusted users or disable webhooks entirely until upgrading. Implement network-level egress filtering to block requests from worker processes to internal IP ranges.

Technical details

Server-side request forgery (SSRF) in the webhook delivery task (webhook_task.py) via unvalidated HTTP redirects. The requests.post() call does not set allow_redirects=False and does not re-validate redirect targets. While the initial URL is validated against private/loopback ranges via validate_url(), subsequent redirect destinations are not checked. An attacker with workspace access can abuse this to reach internal addresses and exfiltrate response bodies stored in webhook_logs.

Affected products

  • Plane Plane before 1.4.0

Timeline

  • 2026-10-05: disclosed
  • 2026-05-31: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.