Safeguard
Vulnerability Analysis•

CVE-2025-32798: Critical Code Execution in conda-build

conda-build before 25.4.0 uses eval on recipe selectors in meta.yaml, allowing code execution during builds (CVSS 9.8). Upgrade to 25.4.0 or later.

Safeguard Security Team
3 min read

CVE-2025-32798 is a critical (CVSS 9.8) code injection flaw in conda-build before version 25.4.0. Its recipe processing uses eval on selectors in meta.yaml files, so an untrusted recipe can run arbitrary code during a build. The fix is conda-build 25.4.0. Upgrade, and only build recipes you trust.

What's affected

conda-build versions prior to 25.4.0. The record says the issue was patched in 25.4.0.

The cause, per the advisory text in the record, is that conda-build uses the eval function to process the embedded selectors in meta.yaml files. This evaluates expressions written by the recipe author without sanitization, so unauthorized commands or file operations may run during the build.

The build environment is affected because that is where the code runs. A machine that builds recipes from outside contributors, such as a public feedstock or a CI runner, holds secrets and publishing credentials that make the impact larger.

How to check if you're exposed

Check the installed version in each environment that builds packages:

conda list conda-build

For pip installs, use:

pip show conda-build

Anything below 25.4.0 is affected. Also check CI images and build containers that install conda-build at image creation time, since they keep the old version until rebuilt.

What to do now

  1. Upgrade conda-build to 25.4.0 or later in every environment, including CI images.
  2. Treat recipes from outside your organization as untrusted code until the upgrade is done.
  3. Build in disposable containers or virtual machines that hold no long lived credentials.
  4. Separate build jobs from publishing jobs, so a build step cannot reach upload tokens.
  5. Review recent build logs and changes for recipes that contain unusual selector expressions.

Why it matters

The class is CWE-94 (Code Injection). Selectors are meant to be small conditions such as which platform a line applies to. Running them through eval gives them the full power of the programming language.

Build tooling is a supply chain target because it runs with trust and produces artifacts others install. The related issues in the same release line are a path traversal in archive handling, CVE-2025-32799, and a dependency name that was not registered on PyPI, CVE-2025-32800.

The record does not mark this CVE as CISA KEV and makes no claim of exploitation in the wild.

Try it yourself

Recipes arrive as pull requests. This demo shows how a pull request gate checks changes before they merge.

Click through it at your own pace, or open it full screen.

Quick check

Do I need to worry if I only build my own recipes?

The risk is mainly from untrusted recipes. If every recipe is written and reviewed by your team, your exposure is lower, but upgrading is still the right move.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.