Budibase, auth, filesystem, and crypto-boundary batch¶
Sources: GitHub Security Advisories updates on 2026-05-15.
This batch covers newly published or newly updated advisories across low-code datasource control planes, auth rate-limits/OAuth state, filesystem download/ticket stores, task-log secret handling, SSH transport trust, and memory-safety/panic-safety edges. The shared defensive lesson is that user-controlled identifiers, URLs, redirects, filenames, cryptographic protocol bytes, and log destinations must be treated as active boundary inputs, even when they arrive from authenticated users or internal automation.
Advisories covered¶
- Budibase datasource update authorization bypass — GHSA-44m2-crh7-f4q2:
@budibase/server < 3.38.1protectsPUT /api/datasources/:datasourceIdwithTABLE/READinstead of builder-level access, allowing authenticated app users to overwrite datasource connection settings such as host, port, and URL. Fixed in3.38.1. - Budibase REST datasource redirect SSRF bypass — GHSA-fgqv-jh4g-pvg2:
@budibase/server < 3.38.1can validate the initial REST datasource URL but follow attacker-controlled redirects to blocked/internal targets. Fixed in3.38.1. - Budibase AI Extract File automation SSRF — GHSA-rpj4-7x2v-wjrf:
@budibase/server < 3.34.8misses IP blacklist validation in an automation step that fetches files for AI extraction. Fixed in3.34.8. - Better Auth IPv6 rate-limit bypass — GHSA-p6v2-xcpg-h6xw:
better-auth < 1.4.17and>= 1.5.0-beta.1, < 1.5.0-beta.9key rate limits too narrowly for IPv6, enabling prefix-rotation abuse. Fixed in1.4.17and1.5.0-beta.9. - Better Auth OAuth state mismatch — GHSA-wxw3-q3m9-c3jr:
better-auth < 1.6.2can accept mismatched OAuth callbackstatewhen cookie-backed state storage is used without PKCE. Fixed in1.6.2. - SimpleSAMLphp CAS FileSystemTicketStore traversal — GHSA-jrrg-99xh-5j2q:
simplesamlphp/simplesamlphp-module-casserver <= 7.0.2allows path traversal in the filesystem ticket store, enabling reads/unserialize outside the intended ticket directory and conditional deletion. Fixed in7.0.3. - Sharp generic download object authorization bypass — GHSA-748w-hm6r-qc7v:
code16/sharp < 9.22.0lets authenticated Sharp users download unrelated Laravel Storage objects through the generic download endpoint. Fixed in9.22.0. - Airflow OpenSearch task-log credential leak — GHSA-xccp-97wp-3gjg:
apache-airflow-providers-opensearch < 1.9.1can leak credentials embedded in OpenSearch host URLs through task-log handling. Fixed in1.9.1. - Airflow Elasticsearch task-log credential leak — GHSA-g3jr-4jrm-jvqv:
apache-airflow-providers-elasticsearch < 6.5.3can leak credentials embedded in Elasticsearch host URLs through task-log handling. Fixed in6.5.3. - goshs SSH host-key verification disabled — GHSA-mxg3-432p-mr72:
goshs.de/goshs/v2 <= 2.0.6disables SSH host-key verification, allowing transparent MITM of tunneled HTTP requests. Fixed in2.0.7. - rkyv panic-safety arbitrary code execution — GHSA-vfvv-c25p-m7mm:
rkyv >= 0.8.0, < 0.8.16has panic-safety bugs inInlineVec::clearandSerVec::clearthat can enable arbitrary code execution. Fixed in0.8.16. - arnika UDP rotation, PQC, and KMS TLS weaknesses — GHSA-rc6v-5rmx-w5mv:
github.com/arnika-project/arnika <= 1.0.0has medium-severity issues around UDP rotation, post-quantum crypto handling, and KMS TLS. No patched version was listed at publication time.
Operator triage¶
- Upgrade Budibase to at least
3.38.1and assume any authenticated app user could have changed datasource hosts, ports, URLs, headers, or credentials before the fix. Review datasource history/backups and egress logs for private-IP, metadata-service, localhost, and redirect-following attempts. - For SSRF controls, validate the final destination after every redirect and DNS resolution, not only the first URL. Block private, link-local, loopback, metadata, and internal ranges after canonicalization; pin DNS results during connect where possible.
- Upgrade Better Auth and verify rate-limit keys aggregate IPv6 by a defensible prefix and by stronger identity dimensions such as account, credential, device/session, ASN, and action. Regression-test prefix-rotation attempts.
- For OAuth/OIDC callbacks, require exact state binding to the initiating browser session and use PKCE by default. Treat cookie-only state storage as insufficient unless callback state, nonce, and issuer/client binding are all verified server-side.
- Upgrade SimpleSAMLphp casserver and Sharp. Review filesystem ticket directories, Laravel Storage objects, download logs, and any serialized ticket material for unexpected reads/deletes before assuming patching ended exposure.
- Upgrade Airflow OpenSearch/Elasticsearch providers and rotate credentials that appeared in connection URLs or task logs. Prefer secret backends and scrub URLs before writing logs, exception traces, or rendered task metadata.
- Upgrade goshs to
2.0.7; inventory SSH tunnels that carry HTTP requests and enforce pinned/known host keys. Treat prior unauthenticated SSH tunnel use as potentially observable or modifiable by a network-positioned attacker. - Upgrade
rkyvto0.8.16and review uses of archive/deserialization code in unsafe or FFI-adjacent contexts. Add panic-in-drop and unwind-safety tests around custom buffers. - For arnika deployments, track upstream remediation and compensate by isolating UDP/KMS paths, enforcing strict TLS validation for KMS calls, and monitoring for protocol downgrade or key-handling anomalies.
Durable controls¶
- Authenticated low-privilege users are still attackers at control-plane boundaries. Datasource, tunnel, storage, and automation endpoints need builder/admin authorization, object ownership checks, and server-side policy enforcement.
- SSRF defenses must be destination-based and redirect-aware. Run allowlist/denylist checks after URL parsing, redirect resolution, DNS resolution, and IP canonicalization.
- OAuth state is a browser-session boundary, not a convenience token. Bind state to issuer, client, redirect URI, nonce, and PKCE verifier; fail closed on mismatch.
- Logs are a secret sink. Connection URLs, task metadata, exception traces, and rendered logs must redact credentials before persistence and before UI display.
- Filesystem-backed stores and generic download endpoints need containment checks after decoding, normalization, symlink resolution, and storage-driver mapping.
- Cryptographic and transport code should fail closed: unknown SSH host keys, malformed signatures, panic paths, and unpatched crypto protocol weaknesses should never silently degrade into trusted operation.