CVE-2026-25143

7.8 HIGH

📋 TL;DR

This vulnerability allows attackers to execute arbitrary shell commands on the build host by injecting shell metacharacters into melange's patch pipeline inputs. It affects users of melange from version 0.10.0 to 0.40.2 who build apk packages using declarative pipelines. Attackers who can influence patch-related inputs (through CI/CD systems, pull requests, or configuration files) can exploit this to run commands with melange build process privileges.

💻 Affected Systems

Products:
  • melange
Versions: 0.10.0 to 0.40.2
Operating Systems: Linux, Unix-like systems
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in the built-in patch pipeline used by melange build and melange license-check operations. Any configuration using patch pipelines with user-controllable inputs is vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of the build host, allowing attackers to steal credentials, modify build artifacts, pivot to other systems, or establish persistent backdoors in the build infrastructure.

🟠

Likely Case

Unauthorized command execution leading to data exfiltration, build artifact tampering, or lateral movement within the build environment.

🟢

If Mitigated

Limited impact due to restricted build environment, network segmentation, and minimal privileges assigned to melange processes.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires ability to influence patch pipeline inputs, which is feasible in CI/CD environments, pull request workflows, or build-as-a-service scenarios. The vulnerability is straightforward to exploit once input control is achieved.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.40.3

Vendor Advisory: https://github.com/chainguard-dev/melange/security/advisories/GHSA-rf4g-89h5-crcr

Restart Required: No

Instructions:

1. Update melange to version 0.40.3 or later using your package manager. 2. For source installations: git clone the repository and checkout the patched commit bd132535cd9f57d4bd39d9ead0633598941af030. 3. Rebuild melange from source if necessary. 4. Verify the update with 'melange version'.

🔧 Temporary Workarounds

Input Sanitization

linux

Implement strict input validation and sanitization for all patch pipeline inputs to reject shell metacharacters.

# Example input validation script
# Reject inputs containing shell metacharacters
if [[ "$INPUT" =~ [\`\$\|\&\;\>\<] ]]; then
    echo "Invalid input detected"
    exit 1
fi

Restrict Build Environment

linux

Run melange in isolated containers with minimal privileges and network access.

# Run melange in Docker with restricted capabilities
docker run --cap-drop=ALL --security-opt=no-new-privileges -v $(pwd):/work chainguard/melange:latest build

🧯 If You Can't Patch

  • Disable or restrict use of patch pipelines in melange configurations
  • Implement strict access controls on who can submit pull requests or modify build configurations

🔍 How to Verify

Check if Vulnerable:

Check melange version with 'melange version' or 'melange --version'. If version is between 0.10.0 and 0.40.2 inclusive, the system is vulnerable.

Check Version:

melange version

Verify Fix Applied:

After updating, verify version is 0.40.3 or higher. Test patch pipeline functionality with controlled inputs containing shell metacharacters to ensure they are properly sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected shell commands in melange build logs
  • Unusual process execution from melange build context
  • Failed patch pipeline executions with error messages about invalid characters

Network Indicators:

  • Unexpected outbound connections from build hosts during melange execution
  • DNS queries to suspicious domains from build processes

SIEM Query:

process.name="melange" AND (command_line CONTAINS "$" OR command_line CONTAINS "`" OR command_line CONTAINS ";")

🔗 References

📤 Share & Export