{"answers":{"affected":"2 open source packages ship an affected version, including @budibase/server.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-45717 exists.","fix":"Upgrade @budibase/server to 3.38.1 or later.","what":"CVE-2026-45717 is a high-severity missing authorization vulnerability in budibase, published on 27 May 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-45717 and fix it if it is affected.\n\nWhat it is: CVE-2026-45717 is a high-severity missing authorization vulnerability in budibase, published on 27 May 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-45717 exists.\n\nAffected packages and fixed versions:\n- @budibase/server (npm): affected all versions; fixed in 3.38.1\n- @budibase/server (npm): affected all versions; fixed in 3.38.1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-45717/ (Markdown: https://insights.sbomify.com/CVE-2026-45717/index.md)","id":"CVE-2026-45717","markdown":"https://insights.sbomify.com/CVE-2026-45717/index.md","name":"CVE-2026-45717","record":{"aliases":["GHSA-44m2-crh7-f4q2"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["data_modify","security_bypass"],"network_reachable":"yes","non_default_config":false,"product_category":"Budibase low-code platform","requires_auth":"low_privilege","summary":"Authenticated users can overwrite datasource configurations due to missing builder checks, enabling internal service probing and credential theft.","user_interaction":"not_required","vuln_class":"missing_authorization"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":8.8,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"},"cwes":[{"id":"CWE-862","name":"Missing Authorization"}],"description":"Budibase is an open-source low-code platform. Prior to 3.38.1, Budibase exposes a REST API for datasource management. The route PUT /api/datasources/:datasourceId is registered in the authorizedRoutes group with TABLE/READ permission. This is the same authorization level as the read endpoint (GET /api/datasources/:datasourceId). Every authenticated Budibase app user with the BASIC built-in role or higher carries TABLE/WRITE (and therefore TABLE/READ) permissions, and the datasource update controller performs no additional builder check. As a result, any authenticated non-builder app user can submit a PUT request to rewrite a datasource's config object — including the connection host, port, database credentials, or the base url of a REST datasource. Because no network-level SSRF protection is applied to SQL driver connections, redirecting a PostgreSQL/MySQL/MongoDB datasource to an internal IP address succeeds and the attacker can probe or interact with internal services on arbitrary ports. This vulnerability is fixed in 3.38.1.","ecosystems":["npm"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"Budibase: `PUT /api/datasources/:datasourceId` is protected only by `TABLE/READ` permission instead of builder access, allowing any authenticated app user to overwrite datasource connection parameters including host, port, and URL","id":"CVE-2026-45717","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"npm","product":null,"products":[],"type":"missing_authorization","year":"2026"},"n_packages":2,"n_references":2,"next":{"headline":"Budibase: Row Action Trigger Bypasses View Row Filter Security Boundary Allowing Action on Out-of-Scope Rows","id":"CVE-2026-45718"},"packages":[{"ecosystem":"npm","fixed":["3.38.1"],"introduced":["0"],"last_affected":[],"package":"@budibase/server","purl":null,"source":"GHSA-44m2-crh7-f4q2"},{"ecosystem":"npm","fixed":["3.38.1"],"introduced":["0"],"last_affected":[],"package":"@budibase/server","purl":"pkg:npm/%40budibase/server","source":"GHSA-44m2-crh7-f4q2"}],"prev":{"headline":"Budibase: Builder-to-Admin Privilege Escalation via onboardUsers Endpoint Without SMTP Configuration","id":"CVE-2026-45716"},"products":["budibase"],"published":"2026-05-27","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-05-27","vendors":["Budibase"]},"summary":"Authenticated users can overwrite datasource configurations due to missing builder checks, enabling internal service probing and credential theft.","url":"https://insights.sbomify.com/CVE-2026-45717/"}