{"schemaVersion":3,"id":"CVE-2026-22683","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"Windmill versions 1.56.0 through 1.614.0 contain a missing authorization vulnerability that allows users with the Operator role to perform prohibited entity creation and modification actions via the backend API. Although Operators are documented and priced as unable to create or modify entities, the API does not enforce the Operator restriction on workspace endpoints, allowing an Operator to create and update scripts, flows, apps, and raw_apps. Since Operators can also execute scripts via the jobs API, this allows direct privilege escalation to remote code execution within the Windmill deployment. This vulnerability has existed since the introduction of the Operator role in version 1.56.0.","dates":{"published":"2026-04-07T16:50:30.297Z","modified":"2026-07-14T15:53:31.531Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.8,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":8.7,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":8.8,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":8.7,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":8.8,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.02609,"percentile":0.85172,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":0,"baselineDate":"2026-09-19T00:00:00.000Z","baselineScore":0.02609},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.02609,"percentile":0.85172}],"last30":[{"date":"2026-09-19T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.02609,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.02609,"percentile":0.85172}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[{"id":"GITHUB_CHOCAPIKK_WINDFALL","name":"Windfall","source":"github","url":"https://github.com/Chocapikk/Windfall","maturity":"poc","reliabilityScore":0.3,"verified":false,"type":null,"platforms":[],"requiresAuth":null,"exploitdb":null,"metasploit":null},{"id":"REF_B9E69A2F41336EBB","name":"Exploit Reference (chocapikk.com)","source":"reference","url":"https://chocapikk.com/posts/2026/windfall-nextcloud-flow-windmill-rce/","maturity":"unknown","reliabilityScore":0.2,"verified":false,"type":null,"platforms":[],"requiresAuth":null,"exploitdb":null,"metasploit":null}],"exploitCount":2,"weaknesses":[{"id":"CWE-862","name":"Missing Authorization","description":"The product does not perform an authorization check when an actor attempts to access a resource or perform an action.","type":"weakness","status":"Incomplete","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/862.html"}],"affected":[{"vendor":"nextcloud","product":"flow","name":"flow","label":"flow","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.0.0, ≤ 1.2.2","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.0.0, ≤ 1.2.2","eol":null,"hubHref":"/vendor/nextcloud/flow"},{"vendor":"windmill labs","product":"windmill ce (community edition)","name":"Windmill CE (Community Edition)","label":"windmill ce (community edition)","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.56.0, ≤ 1.614.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.56.0, ≤ 1.614.0","eol":null,"hubHref":"/vendor/windmill_labs/windmill_ce_community_edition"},{"vendor":"windmill labs","product":"windmill ee (enterprise edition)","name":"Windmill EE (Enterprise Edition)","label":"windmill ee (enterprise edition)","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.56.0, ≤ 1.614.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.56.0, ≤ 1.614.0","eol":null,"hubHref":"/vendor/windmill_labs/windmill_ee_enterprise_edition"},{"vendor":"windmill","product":"windmill","name":"windmill","label":"windmill","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.56.0, ≤ 1.614.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.56.0, ≤ 1.614.0","eol":null,"hubHref":"/vendor/windmill/windmill"}],"affectedCount":4,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://chocapikk.com/posts/2026/windfall-nextcloud-flow-windmill-rce/","label":"chocapikk.com/posts/2026/windfall-nextcloud-flow-windmill-rce/","hostname":"chocapikk.com","tags":["Technical Description","Exploit","Vendor Advisory"]},{"url":"https://github.com/Chocapikk/Windfall","label":"github.com/Chocapikk/Windfall","hostname":"github.com","tags":["Exploit","Product"]},{"url":"https://github.com/windmill-labs/windmill/releases/tag/v1.615.0","label":"github.com/windmill-labs/windmill/releases/tag/v1.615.0","hostname":"github.com","tags":["Release Notes"]},{"url":"https://github.com/windmill-labs/windmill/commit/c621a74804f4f6e8318819c01e3a23a17698588b","label":"github.com/windmill-labs/windmill/commit/c621a74804f4f6e8318819c01e3a23a17698588b","hostname":"github.com","tags":["Patch"]},{"url":"https://www.windmill.dev/","label":"www.windmill.dev","hostname":"www.windmill.dev","tags":["Product"]},{"url":"https://apps.nextcloud.com/apps/flow/releases","label":"apps.nextcloud.com/apps/flow/releases","hostname":"apps.nextcloud.com","tags":["Release Notes"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-04-07T16:50:30.297Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-07-14T15:53:31.531Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":46,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T00:19:23.734Z","stale":false,"partial":false}}