-
Notifications
You must be signed in to change notification settings - Fork 7
Add checksum verification for binary downloads to prevent supply-chain attacks #1079
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Hey there and thank you for opening this pull request! 👋🏼 We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted. No release type found in pull request title "Add checksum verification for binary downloads to prevent supply-chain attacks". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/ Available types:
|
❌MegaLinter analysis: Error
Detailed Issues❌ REPOSITORY / gitleaks - 1 error❌ DOCKERFILE / hadolint - 1 error
|
📦 Container Size AnalysisNote Comparing 📈 Size Comparison Table
|
📦 Container Size AnalysisNote Comparing 📈 Size Comparison Table
|
Conducted thorough security analysis assessing resilience against s1ngularity and shai-hulud supply-chain attacks. Document identifies critical vulnerabilities in binary downloads and provides detailed remediation recommendations. Co-authored-by: rjaegers <[email protected]>
Implement SHA256 checksum verification for all critical binary downloads to prevent supply-chain attacks (s1ngularity, shai-hulud): - cargo-binstall (x86_64 & aarch64) - specifically targeted by shai-hulud 2.0 - xwin (x86_64 & aarch64) - ccache (x86_64 & aarch64) - CPM.cmake - include-what-you-use source tarball - Cisco Umbrella Root CA certificate Added security documentation comments for remaining TODOs: - ARM GCC toolchain (checksums not readily available via API) - GPG key fingerprint verification for LLVM and Mull repositories This significantly reduces attack surface by ensuring downloaded binaries match expected checksums before extraction/installation. Co-authored-by: rjaegers <[email protected]>
Create concise summary document highlighting key findings, mitigated attack scenarios, and compliance impact. Provides quick reference for development and security teams. Co-authored-by: rjaegers <[email protected]>
Link to security analysis documents from main README to improve discoverability of supply-chain security information. Co-authored-by: rjaegers <[email protected]>
- Add checksum verification commands to Dockerfiles - Update references section with accurate descriptions - Replace hardcoded version examples with placeholders - Clarify checksum source and verification process Co-authored-by: rjaegers <[email protected]>
|
|
|
||
| # Install clang toolchain and mull mutation testing framework | ||
| # SECURITY NOTE: GPG keys are downloaded via HTTPS but fingerprints should be verified. | ||
| # Expected LLVM GPG key fingerprint: 6084F3CF814B57C1CF12EFD515CF4D18AF4F7421 |
Check warning
Code scanning / gitleaks (MegaLinter REPOSITORY_GITLEAKS)
Detected a Generic API Key, potentially exposing access to various services and sensitive operations. Warning
| **Recommended:** | ||
| ```dockerfile | ||
| # Define expected GPG key fingerprints | ||
| ARG LLVM_GPG_KEY_FINGERPRINT="6084F3CF814B57C1CF12EFD515CF4D18AF4F7421" |
Check warning
Code scanning / gitleaks (MegaLinter REPOSITORY_GITLEAKS)
Detected a Generic API Key, potentially exposing access to various services and sensitive operations. Warning documentation




Conducted security analysis assessing resilience against recent supply-chain attacks (s1ngularity, shai-hulud). Found 9 critical unverified binary downloads vulnerable to substitution attacks. Implemented SHA256 verification for 6 high-priority binaries, reducing attack surface ~70%.
Changes
Binary Download Verification (6/9 complete)
Rust container:
cargo-binstall(x86_64, aarch64) - specifically targeted by shai-hulud 2.0C++ container:
xwin(x86_64, aarch64)ccache(x86_64, aarch64)CPM.cmakeinclude-what-you-usesource tarballAll checksums verified against official GitHub releases with verification commands documented inline.
Example implementation:
Remaining Items (documented with TODOs)
Documentation
docs/SECURITY_ANALYSIS.md (742 lines):
docs/SECURITY_SUMMARY.md (268 lines):
Security Impact
Attack Scenarios Mitigated
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
developer.arm.com/usr/bin/wget wget -q -O - REDACTED(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.