Arbitrary Write Detection
Detection Workflow
- Identify write operations: Find all array writes, pointer dereference writes, format string usage with %n, struct member writes
- Trace input sources: Use
xrefs_to to trace input, follow user data to write points, identify attacker-controlled values
- Check bounds validation: Verify array bounds checks, assess pointer arithmetic safety, check format string validation, review type safety
- Assess exploitability: Can attacker control write address? Can attacker control write value? What can be overwritten? Can code execution be achieved?
Key Patterns
- Unchecked array indexing: array writes with user-controlled indices, pointer arithmetic writes with user input
- Format string writes: user-controlled format strings with %n, memory writes via printf
- Pointer dereference writes: writing through user-controlled pointers, use-after-free writes, vtable corruption
- Struct/class member writes: writing to wrong struct members, type confusion, vtable/function pointer overwrites
Output Format
Report with: id, type, subtype, severity, confidence, location, vulnerability, write operation, array base, index source, value source, bounds check, exploitable, attack scenario, potential targets, mitigation.
Severity Guidelines
- CRITICAL: Arbitrary write enabling code execution
- HIGH: Arbitrary write with significant impact
- MEDIUM: Arbitrary write with limited impact
- LOW: Minor arbitrary write issues
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
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: detecting-arbitrary-write3description: Detects arbitrary write vulnerabilities by identifying unchecked array indexing and out-of-bounds memory writes. Use when analyzing memory write operations, pointer arithmetic, or investigating code execution vulnerabilities. Use when this capability is needed.4---56# Arbitrary Write Detection78## Detection Workflow9101. **Identify write operations**: Find all array writes, pointer dereference writes, format string usage with %n, struct member writes112. **Trace input sources**: Use `xrefs_to` to trace input, follow user data to write points, identify attacker-controlled values123. **Check bounds validation**: Verify array bounds checks, assess pointer arithmetic safety, check format string validation, review type safety134. **Assess exploitability**: Can attacker control write address? Can attacker control write value? What can be overwritten? Can code execution be achieved?1415## Key Patterns1617- Unchecked array indexing: array writes with user-controlled indices, pointer arithmetic writes with user input18- Format string writes: user-controlled format strings with %n, memory writes via printf19- Pointer dereference writes: writing through user-controlled pointers, use-after-free writes, vtable corruption20- Struct/class member writes: writing to wrong struct members, type confusion, vtable/function pointer overwrites2122## Output Format2324Report with: id, type, subtype, severity, confidence, location, vulnerability, write operation, array base, index source, value source, bounds check, exploitable, attack scenario, potential targets, mitigation.2526## Severity Guidelines2728- **CRITICAL**: Arbitrary write enabling code execution29- **HIGH**: Arbitrary write with significant impact30- **MEDIUM**: Arbitrary write with limited impact31- **LOW**: Minor arbitrary write issues3233## See Also3435- `patterns.md` - Detailed detection patterns and exploitation scenarios36- `examples.md` - Example analysis cases and code samples37- `references.md` - CWE references and mitigation strategies3839---40> Converted and distributed by [TomeVault](https://tomevault.io/claim/waiwai24) — claim your Tome and manage your conversions.41<!-- tomevault:4.0:skill_md:2026-04-13 -->