Agent skill

detecting-double-free

Detects double free vulnerabilities by identifying attempts to free the same memory block twice. Use when analyzing memory management, cleanup paths, or investigating heap corruption issues.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/productivity/detecting-double-free

SKILL.md

Double Free Detection

Detection Workflow

  1. Identify free operations: Find all free() and delete/delete[] calls, note the pointers being freed
  2. Track pointer usage: Use xrefs_to to trace pointers and identify pointer aliases
  3. Analyze control flow: Map all code paths to free(), check for multiple free() calls on same pointer
  4. Assess exploitability: Can attacker trigger double free? Is there useful heap corruption?

Key Patterns

  • Direct double free: free() called twice on same pointer
  • Conditional double free: free() in multiple code paths
  • Indirect double free: freeing same memory through different pointers
  • Reference counting issues

Output Format

Report with: id, type, subtype, severity, confidence, location, freed pointer, first free, second free, double free path, exploitability, attack scenario, impact, mitigation.

Severity Guidelines

  • CRITICAL: Double free with code execution potential
  • HIGH: Double free causing heap corruption
  • MEDIUM: Double free causing crashes
  • LOW: Double free with limited impact

See Also

  • patterns.md - Detailed detection patterns and exploitation scenarios
  • examples.md - Example analysis cases and code samples
  • references.md - CWE references and mitigation strategies

Didn't find tool you were looking for?

Be as detailed as possible for better results