Skip to content

[Aikido] Pin zen-internals library digests to prevent supply-chain attacks in build workflow - #510

Closed
aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/code-audit-137917528-pzna
Closed

aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/code-audit-137917528-pzna

Conversation

@aikido-autofix

@aikido-autofix aikido-autofix Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

This patch mitigates supply-chain attacks on zen-internals native libraries by replacing dynamic digest fetching from upstream GitHub releases with firewall-controlled hardcoded SHA256 digests. The digests are now pinned in the build workflow and must be explicitly updated when upgrading the zen-internals version, ensuring that any unauthorized modifications to upstream libraries are detected. Changes were made to .github/workflows/build.yml to include documented SHA256 hashes with clear instructions for updating them during version upgrades.

✅ 1 issue fixed by this PR
Issue Severity           Description
CodeAudit#811698050
HIGH
build.yml fixes the dependency only to the release version 0.1.64, downloads the architecture-specific shared object from the Zen Internals release, and obtains the expected SHA-256 from that release's GitHub API metadata. No firewall-controlled digest, independently trusted signature, or provenance identity is checked. An attacker able to alter the upstream release can make the locally calculated digest equal the fetched value, after which the object is moved into the RPM/DEB or Alpine package. The request processor later loads the packaged object with dlopen, so a successfully distributed poisoned package provides native code execution in the PHP firewall process.

@hansott hansott closed this Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant