{"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-48152 exists.","fix":"Upgrade @budibase/server to 3.39.0 or later.","what":"CVE-2026-48152 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-48152 and fix it if it is affected.\n\nWhat it is: CVE-2026-48152 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-48152 exists.\n\nAffected packages and fixed versions:\n- @budibase/server (npm): affected all versions; fixed in 3.39.0\n- @budibase/server (npm): affected all versions; fixed in 3.39.0\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-48152/ (Markdown: https://insights.sbomify.com/CVE-2026-48152/index.md)","id":"CVE-2026-48152","markdown":"https://insights.sbomify.com/CVE-2026-48152/index.md","name":"CVE-2026-48152","record":{"aliases":["GHSA-3gp5-q4jw-3v94"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["data_read","security_bypass"],"network_reachable":"yes","non_default_config":false,"product_category":"Budibase low-code platform","requires_auth":"low_privilege","summary":"Basic users can exfiltrate stored REST datasource authentication secrets by rewriting the datasource base URL due to insufficient permission checks.","user_interaction":"not_required","vuln_class":"missing_authorization"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":8.1,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","version":"3.1"},"cwes":[{"id":"CWE-863","name":"Incorrect Authorization"}],"description":"Budibase is an open-source low-code platform. Prior to 3.39.0, the single-datasource GET and PUT routes are guarded by generic TABLE READ, not by Builder/Admin permission or datasource-specific ownership/resource checks. The built-in Basic app user role maps to the WRITE permission set, which includes table read/write and query write. A Basic user can therefore read an existing REST datasource, receive redacted authConfigs values, submit an update that changes only config.url while keeping the redacted placeholders, and trigger an existing saved relative-path REST query. During update, mergeConfigs() restores the old stored secret when it sees the redaction placeholder. During query execution, Budibase prefixes the attacker-controlled datasource config.url to the relative query path and applies the resolved stored auth headers. The result is server-side disclosure of the builder-configured REST Authorization secret to an attacker-controlled listener. This vulnerability is fixed in 3.39.0.","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: Basic app users can exfiltrate stored REST datasource auth by rewriting datasource base URL","id":"CVE-2026-48152","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"npm","product":null,"products":[],"type":"missing_authorization","year":"2026"},"n_packages":2,"n_references":1,"next":{"headline":"Budibase: SSRF via OAuth2 token endpoint URL reaches internal hosts and cloud metadata","id":"CVE-2026-48153"},"packages":[{"ecosystem":"npm","fixed":["3.39.0"],"introduced":["0"],"last_affected":[],"package":"@budibase/server","purl":null,"source":"GHSA-3gp5-q4jw-3v94"},{"ecosystem":"npm","fixed":["3.39.0"],"introduced":["0"],"last_affected":[],"package":"@budibase/server","purl":"pkg:npm/%40budibase/server","source":"GHSA-3gp5-q4jw-3v94"}],"prev":{"headline":"Budibase: Webhook schema endpoint authorization bypass allows unauthenticated mutation of webhook and automation schema","id":"CVE-2026-48151"},"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":"Basic users can exfiltrate stored REST datasource authentication secrets by rewriting the datasource base URL due to insufficient permission checks.","url":"https://insights.sbomify.com/CVE-2026-48152/"}