Google's official skill for the gws CLI — drive Gmail, Drive, Calendar, Sheets, Docs, Chat and Admin APIs from an agent, with Model Armor screening.
Zeroize AuditSkill
Summary
Finds secrets left in memory in C, C++ and Rust — including wipes the compiler deleted — and requires IR or assembly evidence before calling one optimized away.
Features
- Detects missing zeroization and wipes removed by compiler optimizations in C, C++ and Rust
- Optimized-away findings require IR or assembly diff evidence — never asserted from source
- Assembly analysis for register spills and stack retention; data-flow tracking of secret copies
- Control-flow verification that wipes dominate every exit path, error paths included
- Eight-phase orchestrated pipeline with resumable state after an interrupted run
- Downgrades findings to needs_review when semantic MCP analysis is unavailable, rather than overclaiming
Install This Skill
Add this skill to your favorite AI agent in a few steps.
Skill Content
Usage Instructions
Learn how to use this skill with different AI agents.
Example Usage
Audit this crate for secrets left in memory — I want to know whether our key-wiping actually survives at -O2, with the assembly to back it up.
Description
Writing a wipe over a key buffer is easy. Proving the wipe survived the optimizer is not: dead-store elimination routinely deletes a memset whose result is never read, which is precisely the shape of every secret-zeroization call. A source-level grep for memset or zeroize therefore tells you what the developer intended, not what the binary does.
This skill from Trail of Bits audits C, C++ and Rust for sensitive data left in memory, and treats "the compiler removed it" as a claim requiring proof. A finding may only be reported as optimized-away when backed by compiler evidence — an IR or assembly diff.
How it works
The skill runs an eight-phase orchestrated pipeline, spawning a sub-agent per phase with recoverable state, so an interrupted run resumes from its recorded current_phase rather than restarting. Analysis is read-only against the audited codebase; artifacts go to a temporary working directory.
Detection covers more than missing calls:
- Assembly-level analysis for register spills and stack retention of secret values
- Data-flow tracking for copies of a secret made before the wipe
- Semantic LLVM IR analysis for loop unrolling and SSA-form effects
- Control-flow graph analysis verifying the wipe dominates every exit, including error paths
- Heap allocator security warnings
- Runtime validation test generation, plus proof-of-concept generation for 11 exploitable finding categories
Inputs and honest gating
It needs real build context: a compile_commands.json for C/C++ or a Cargo.toml for Rust, and it fails fast rather than guessing when neither is derivable. IR comparison defaults to O0, O1 and O2 — O1 is the diagnostic level, since a wipe that disappears there is plain dead-store elimination while O2 catches more aggressive removals.
Confidence gating is explicit about degraded runs. Advanced findings (SECRET_COPY, MISSING_ON_ERROR_PATH, NOT_DOMINATING_EXITS) depend on Serena MCP for semantic queries; when it is unavailable the skill downgrades them to needs_review instead of reporting them at full confidence or dropping them. Rust PoC support is narrower than C/C++ and the skill marks the unsupported categories rather than implying coverage it does not have.
Useful for auditing cryptographic implementations, authentication and session handling, and any codebase where credentials or PII pass through buffers whose lifetime you need to reason about.
Related Skills
Netlify's official skill for zero-config managed Postgres — querying from Functions, Drizzle setup, migrations and per-preview database branches.
Official WordPress skill for Gutenberg block work: block.json, attributes and serialization, dynamic rendering, and the deprecation path that keeps existing content valid.
Persistent cross-session memory for coding agents: hooks capture each session, a local SQLite + vector store compresses it, and a mem-search skill reads it back.
