# Use After Free

> Detects potential use-after-free vulnerabilities where memory is accessed after being freed.

- Skill: `zakirkun/use-after-free` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add zakirkun/use-after-free`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zakirkun/use-after-free/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zakirkun (https://skillmd.com/u/zakirkun)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zakirkun/use-after-free

---


# Use After Free

## Overview
Use-after-free (UAF) occurs when a program continues to use a pointer after the memory it points to has been freed. This can lead to:
- Memory corruption
- Arbitrary code execution
- Privilege escalation
- Information disclosure

UAF vulnerabilities are common in browsers, kernels, and network services.

## Detection Strategy
- `free(ptr)` followed by accessing `ptr` without setting it to `NULL`
- `delete ptr` in C++ followed by further dereference
- Returning a pointer to freed memory

## Remediation
- Set pointers to `NULL` immediately after `free()`
- Use smart pointers in C++ (`unique_ptr`, `shared_ptr`)
- Use memory-safe languages for new projects

**Vulnerable:**
```c
char *buf = malloc(256);
free(buf);
strcpy(buf, input); // Use after free!
```

**Safe:**
```c
char *buf = malloc(256);
free(buf);
buf = NULL; // Prevent use after free
```

