CVE-2026-25044
highpriority · track · 35EPSS 0.005 · 40 %ileDEEUUSEPSS · scored 2026-10-27
Budibase is an open-source low-code platform. Prior to version 3.33.4, the bash automation step executes user-provided commands using execSync without proper sanitization or validation. User input is processed through processStringSync which allows template interpolation, potentially allowing arbitrary command execution. This issue has been patched in version 3.33.4.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · medium–high · 6.3–8.8
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (7)
Products and version ranges known to be affected.
advisories (2)
Vendor and ecosystem advisories describing this.
- WID-SEC-W-2026-0990Budibase: Mehrere SchwachstellenDeutsch2026-04-07csaf · cert_bundDE
Ein Angreifer kann mehrere Schwachstellen in Budibase ausnutzen, um beliebigen Code auszuführen – sogar mit Root-Rechten –, sich erweiterte Rechte zu verschaffen – sogar Administratorrechte –, Cross-Site-Scripting-Angriffe durchzuführen, Daten zu manipulieren, einen Denial-of-Service-Zustand herbeizuführen oder vertrauliche Informationen offenzulegen.
- GHSA-gjw9-34gf-rp6mBudibase: Command Injection in Bash Automation Step2026-04-03ghsa · osvUS
**Location**: `packages/server/src/automations/steps/bash.ts` #### Description The bash automation step executes user-provided commands using `execSync` without proper sanitization or validation. User input is processed through `processStringSync` which allows template interpolation, potentially allowing arbitrary command execution. #### Code Reference ```21:28:packages/server/src/automations/steps/bash.ts const command = processStringSync(inputs.code, context) let stdout, success = true try { stdout = execSync(command, { timeout: environment.QUERY_THREAD_TIMEOUT, }).toString() ``` #### Attack Vector An attacker with access to create or modify automations can inject malicious shell commands by including template syntax that evaluates to command injection payloads (e.g., `$(rm -rf /)`, `; malicious-command`, `| malicious-command`). #### Impact - Remote code execution (RCE) - Complete system compromise - Data exfiltration - Lateral movement within the infrastructure #### Recommendation 1. **Immediate**: Disable bash automation step in production until fixed 2. Implement a whitelist of allowed commands 3. Use parameterized command execution with proper escaping 4. Implement command argument validation 5. Consider using a restricted shell or command sandboxing 6. Add rate limiting and monitoring for command execution #### Example Fix ```typescript import { spawn } from "child_process" // Validate against whitelist const ALLOWED_COMMANDS = ["echo", "date", "pwd"] // Extend as needed function sanitizeCommand(input: string): string { // Remove dangerous characters and command chaining return input.replace(/[;&|`$(){}[\]]/g, "").trim() } function validateCommand(cmd: string): boolean { const parts = cmd.split(/\s+/) return ALLOWED_COMMANDS.includes(parts[0]) } export async function run({ inputs, context }) { if (!inputs.code) { return { stdout: "Budibase bash automation failed: Invalid inputs" } } const processedCommand = processStringSync(inputs.code, context) const sanitized = sanitizeCommand(processedCommand) if (!validateCommand(sanitized)) { return { success: false, stdout: "Command not allowed" } } // Use spawn instead of execSync with proper argument handling return new Promise((resolve) => { const [command, ...args] = sanitized.split(/\s+/) const proc = spawn(command, args, { timeout: environment.QUERY_THREAD_TIMEOUT, }) let stdout = "" proc.stdout.on("data", (data) => { stdout += data }) proc.on("close", (code) => { resolve({ stdout, success: code === 0 }) }) }) } ```
also known as (2)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (7)
External citations — patches, advisories, analysis.
- https://github.com/Budibase/budibase/releasesPatchcnnvd
- https://github.com/Budibase/budibase/releases/tag/3.33.2cnnvd
- https://github.com/Budibase/budibase/security/advisories/GHSA-gjw9-34gf-rp6mcnnvd
- https://github.com/Budibase/budibase/releases/tag/3.33.2enisa_euvd
- https://github.com/Budibase/budibase/security/advisories/GHSA-gjw9-34gf-rp6menisa_euvd
- https://github.com/Budibase/budibase/releases/tag/3.33.2ProductRelease Notesnvd
- https://github.com/Budibase/budibase/security/advisories/GHSA-gjw9-34gf-rp6mMitigationVendor Advisorynvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan