Skip to main content

Prefect CVE-2026-3514

| EUVDEUVD-2026-33884 HIGH
Incorrect Authorization (CWE-863)
2026-06-02 @huntr_ai GHSA-c635-393c-hcx2
7.5
CVSS 3.0 · Vendor: huntr_ai
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed Prefect 3.6.19 server
  2. Delivery
    Craft GET request to resource path ending in 'health' or 'ready'
  3. Exploit
    Auth middleware suffix-match exempts request
  4. Execution
    Server returns variable/flow/deployment data
  5. Persist
    Extract API keys and DB credentials from Prefect Variables
  6. Impact
    Pivot to downstream systems using harvested secrets

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target Prefect server (version 3.6.19) has server-side authentication enabled via PREFECT_SERVER_API_AUTH_STRING - instances running with no auth are not in scope of this bypass - and that the attacker has network reachability to the server's HTTP API. The attacker must either know an existing resource name (variable, flow, work pool, work queue, or deployment) whose name happens to end in 'health' or 'ready', or be able to create such a resource; a related Host-header variant works against ordinary endpoints when the attacker can set the Host header to a value like 'localhost/health?' (demonstrated in the regression test test_host_header_manipulation_does_not_bypass_auth). No user interaction, no credentials, and no special client tooling are required beyond an HTTP client. Limiting factors: the bypass yields confidentiality impact only (C:H/I:N/A:N), so it does not directly grant write access, and only GET requests are exempted by the middleware.

Impact

The CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N vector aligns cleanly with the technical reality: network-reachable, no privileges, no user interaction, and a confidentiality-only impact since the bypass exposes read access to variables, flows, work pools, work queues, and deployment metadata that frequently store API keys and database credentials. Real-world risk is meaningfully elevated by the fact that Prefect servers are often deployed inside internal networks but increasingly exposed via ingress for remote workers, and exploitation requires only knowing or guessing resource names ending in the exempted suffixes - which an attacker can also create themselves if any write path is reachable. EPSS and KEV data are not present in the provided intelligence, so I cannot quantitatively rank exploitation probability, but the trivial attack complexity, public huntr disclosure with a bounty writeup, and presence of a regression-tested fix in the upstream commit all argue this should be treated as a high-priority patch rather than a theoretical issue. There is no conflict between the CVSS network vector and the description; both consistently describe an unauthenticated HTTP-level bypass.

Exploit ScenarioDerived

An attacker who can reach an authenticated Prefect 3.6.19 server (directly or via a misconfigured ingress) sends GET /api/variables/name/system-health and, because the auth middleware sees a path ending in 'health', receives the variable's value - which Prefect commonly uses to store API keys, database DSNs, and other secrets. The same trick works against /api/flows/.../system-ready, /api/work_pools/<n>-health, /api/work_queues/<n>-ready, and /api/deployments/<n>-health, letting the attacker enumerate orchestration state and harvest credentials without ever presenting the basic-auth header. No public exploit identified at time of analysis, but the regression tests committed alongside the fix effectively document the exact request shapes needed.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 02, 2026

Authentication bypass in prefecthq/prefect 3.6.19 allows remote unauthenticated attackers to access sensitive API endpoints by naming resources with paths ending in 'health' or 'ready', exploiting overly broad suffix-matching in the auth middleware exemption logic. Confirmed exploitable per the huntr.com bounty disclosure and validated by the upstream patch which replaces suffix matching with exact path comparison. No public exploit identified at time of analysis, and no EPSS or KEV signal is provided in the available data.

RemediationAI

Upstream fix available (commit e21617125335025b4b27e7d6f0ca028e8e8f3b79); a released patched version is not independently confirmed in the provided data, so administrators should upgrade to the first prefecthq/prefect release that contains that commit (any version newer than 3.6.19 carrying the fix) and verify by checking that src/prefect/server/api/server.py uses exact-path matching against {health_check_path, '/ready'} rather than endswith(('health','ready')). Until the upgrade is applied, place the Prefect server behind a reverse proxy (nginx, Envoy, or an ingress controller) and add an explicit allowlist that only forwards GET /api/health and GET /api/ready without auth while requiring authentication on every other path - note this duplicates middleware logic and must be kept in sync with Prefect's own health-check path setting. As a stricter alternative, block external access to /api/variables/name/*, /api/flows/*, /api/work_pools/*, /api/work_queues/*, and /api/deployments/* at the proxy and audit existing resource names for any ending in 'health' or 'ready'; the trade-off is that legitimate clients with such names will break until renamed. Refer to the huntr advisory at https://huntr.com/bounties/c540e5e1-f74f-44f4-bfa0-9764ff6daa75 for the disclosure timeline.

Affected VersionsENISA

prefecthq/prefect unspecified <3.6.22

Affected Packages

pypi prefect fix: 3.6.22.dev7, 3.6.22
euvd prefecthq_prefect_unspecified fix: 3.6.22

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Prefect is an open-source Python workflow orchestration platform whose server component (src/prefect/server/api/server.py) ships a Starlette/FastAPI authentication middleware. The middleware intentionally exempts Kubernetes-style liveness and readiness probes from auth checks, but in 3.6.19 the exemption used Python's str.endswith(('health', 'ready')) against request.url.path. This is a classic CWE-863 (Incorrect Authorization) flaw: because resource endpoints such as /api/variables/name/{name}, /api/flows, /api/work_pools, /api/work_queues, and /api/deployments embed user-controlled identifiers in the path, an attacker can craft a resource name like 'system-health' or 'prod-ready' so the resulting URL satisfies the suffix predicate and bypasses auth entirely. The patched code (commit e21617125335025b4b27e7d6f0ca028e8e8f3b79) hardens this by (1) restricting exempted paths to the exact set {health_check_path, '/ready'} and (2) reading scope['path'] minus root_path rather than request.url.path, which the regression tests show was spoofable through a crafted Host header like 'localhost/health?'.

Know when Prefecthq Prefect gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (huntr_ai) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Primary rating from Vendor (huntr_ai) · only source for this CVE.

CVSS VectorVendor: huntr_ai

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Jun 02, 2026 - 10:01 EUVD

DescriptionCVE.org

In version 3.6.19 of prefecthq/prefect, an authentication bypass vulnerability exists due to the improper handling of URL path exemptions for health check probes. Specifically, the authentication middleware exempts any URL path ending with 'health' or 'ready' from authentication checks. This allows an attacker to create resources with names ending in 'health' or 'ready' and access them without authentication. Affected endpoints include those for variables, flows, work pools, work queues, and deployments. This vulnerability can lead to unauthorized access to sensitive information, such as API keys and database credentials, stored in Prefect Variables.

Executive ViewAI

Why It Matters

Prefect 3.6.19 contains an authentication bypass vulnerability allowing remote attackers to access sensitive API endpoints through resource naming exploitation. Organizations using this version face exposure of workflow orchestration data and potential unauthorized API access until patching is available.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: Implement reverse proxy or WAF rules blocking requests to resources with names ending in 'health' or 'ready' from untrusted sources; restrict network access to API services via firewall rules; deploy API gateway authentication controls; implement comprehensive audit logging of API access to detect exploitation attempts.

Threat Intelligence Overview

EPSS Score
0.1%
Top 76% exploitable
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy