How do you record which library commit shipped in a firmware release?
A git submodule stores a commit pointer, not files, so the superproject commit records the exact library version. How to use it for firmware releases.
Deep dives, practical guides, and incident analyses from engineers who build Safeguard. No fluff, no vendor FUD — just what you need to ship secure software.
A git submodule stores a commit pointer, not files, so the superproject commit records the exact library version. How to use it for firmware releases.
Steps to add sha256 hashes to a pinned requirements file, turn on pip hash checking, and cope with platforms that have several files per package.
An application locks versions in Gemfile.lock. A gem cannot, since Bundler ignores a gem's own lockfile when resolving. What that means for risk.
A decision guide for choosing between fuzzing and property-based testing: what each needs, what each finds, and when to use both on the same code.
How to add fuzzing to CI without slowing every build: corpus replay on each commit, a bounded run on pull requests, and longer batch runs on a schedule.
How to schedule fuzzing: replay the corpus on every pull request, run time-boxed fuzzing nightly, and keep a long running job for critical parsers.
Atheris brings libFuzzer to Python. Set up a harness, instrument imports, and pair it with sanitizers when you test native extension modules.
Jazzer is a coverage-guided fuzzer for the JVM. Add a FuzzTest method, run in regression mode by default, and switch fuzzing on when you want a hunt.
Rust is memory safe, but unsafe code, panics and logic bugs still need fuzzing. Install cargo-fuzz, add a target, run it, then minimize what it finds.
Weekly insights on software supply chain security, delivered to your inbox.
Your first fix PR is minutes away.
No sales call required, even your agent can complete the purchase over MCP.