Safeguard
Vulnerability Analysis•

CVE-2026-34612: Critical SQL Injection to RCE in Kestra

CVE-2026-34612 is a critical SQL injection in Kestra that can lead to remote code execution. Upgrade to 1.3.7 (1.0.35 on the older line) and limit access.

Safeguard Security Team
3 min read

CVE-2026-34612 is a critical SQL injection in Kestra, an open source orchestration platform. NVD scores it 9.9. In the default docker-compose deployment it can lead to remote code execution through the flows search endpoint. Upgrade to Kestra 1.3.7, or 1.0.35 on the older line.

What's affected

Kestra v1.3.6 and earlier. The advisory lists patched versions as v1.3.7 and after, and v1.0.35.

The record describes the default docker-compose deployment, where PostgreSQL is the backing database. The advisory notes that the injected statement is run by PostgreSQL, which is what turns the injection into command execution on the host.

How to check if you're exposed

Check the image tag or release in your deployment. For docker compose:

docker compose images | grep -i kestra

If you run Kestra from Helm or another orchestrator, read the image tag from the deployment spec. Compare it with 1.3.7 or 1.0.35. Then look at who can sign in: the record says that once a user is authenticated, simply visiting a crafted link is enough.

What to do now

  1. Upgrade to Kestra 1.3.7, or 1.0.35 if you are on the 1.0 line, and restart the stack.
  2. Restrict network access to the Kestra UI and API to the people who need it, and put it behind your identity layer.
  3. Review who has accounts, and remove ones that are not needed, since the flaw needs a signed in user.
  4. Check the PostgreSQL role Kestra uses. The database account should not carry superuser rights unless something requires it.
  5. Review web and database logs around the flows search endpoint for odd query strings.

Why it matters

The weakness is CWE-89, SQL injection. A value from the request ends up inside a SQL statement without proper parameter binding, so input can change the statement itself.

Per the advisory, the path runs through the flow label filter into the repository code that builds the query. What makes it critical is the database side: a PostgreSQL feature that runs commands on the database host can be reached when the database account is powerful, which is the case in the default compose setup the record describes. The vector shows Scope Changed because the impact moves from the app to the host.

The record does not flag this CVE as listed in CISA's Known Exploited Vulnerabilities catalog, and I found no statement that it is exploited in the wild.

Try it yourself

Patching one service is easy. Tracking it across every environment is the harder part, and this demo walks through it.

Click through it at your own pace, or open it full screen.

Quick check

Is a crafted link enough?

The record says that once a user is authenticated, visiting a crafted link is enough. That is why a patch and limited access both matter.

Do I need to rotate secrets after patching?

The advisory does not say. If you suspect anyone used the endpoint maliciously, treat database and workflow credentials as exposed and rotate them.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.