Debt Collector Series: §8 Reporting — Visualization & Output

§8 Reporting — Visualization & Output

Layer §7 of the Debt Collector Stack

Author: Shrikant Bhosale (@debtcollector21)


8.1 What It Is

The reporting layer converts the raw output of all six preceding layers into human-readable, machine-parseable, and submission-ready formats. A vulnerability that cannot be communicated does not exist.


8.2 Output Formats

8.2.1 UMM HTML Color Map

An interactive 2D visualization of process memory:

┌──────────────────────────────────────────────────────────┐
│ Memory Map — PID 12345 (d8)                              │
│ Total: 2.8GB | Regions: 184 | Debt: 0.72                │
├──────────────────────────────────────────────────────────┤
│                                                          │
│ 0x00000000 ┌────────────────────────────────────────┐    │
│            │ ████  [heap]                           │    │
│ 0x40000000 │ ██████████████████████  [heap]        │    │
│            │ ████████████████████████████████       │    │
│ 0x7f000000 │ ██████░░░░░░░░░░  [libc-2.31.so]     │    │
│            │ ████░░░░░░░░░░░░░░  [ld-linux.so]     │    │
│            │ ██████░░░░░░░░░░░░░░░░  [lib[Vendor].so]    │    │
│ 0x7f130000 │ ████░░░░░░░░░░  [libstdc++.so]       │    │
│            │ ████░░░░░░░░░░░░░░  [libasan.so]      │    │
│ 0x7f7f0000 │ ████████████████  [lib[Vendor].so]          │    │
│            │ ██████████████████████████████████     │    │
│ 0x7fffffff └────────────────────────────────────────┘    │
│                                                          │
│ Legend: ██ Heap  ██ RWX  ██ Lib  ██ Stack  ██ VDSO      │
│                                                          │
│ Findings (7):                                            │
│  [CRITICAL] RWX region [vdso] at 0x7fff...              │
│  [HIGH]     Adjacent alloc libc / lib[Vendor] at offset 0x...  │
│  [MEDIUM]   184 regions — possible fragmentation          │
└──────────────────────────────────────────────────────────┘

The HTML version is interactive: hover for details, click to zoom, toggle layers.

8.2.2 JSON Report

Standard machine-readable format for all layers:

{
    "scan": {
        "timestamp": "2026-07-17T10:30:00Z",
        "target": "[Vendor]/src/parsing/",
        "files": 89,
        "duration_ms": 45200
    },
    "findings": {
        "total": 32847,
        "collapsed": 27647,
        "real": 5200,
        "critical": 847,
        "high": 2103,
        "medium": 1450,
        "low": 800
    },
    "debt": {
        "max_debt": 0.94,
        "avg_debt": 0.82,
        "subsystems": {
            "parser": 0.85,
            "compiler": 0.82,
            "wasm": 0.74,
            "builtins": 0.86
        }
    },
    "chains": {
        "total": 3,
        "top_cvss": 8.0,
        "top_path": "recon_info → heap_corruption → type_confusion → code_execution",
        "bottleneck": "heap_corruption (0.42)"
    },
    "krus": {
        "total": 35,
        "matched": 35,
        "nku_created": 0
    },
    "fuzzer": {
        "seeds": 43,
        "crashes": 43,
        "hit_rate": 1.0,
        "avg_crash_time_ms": 0.3
    }
}

8.2.3 ASAN-Compatible Trace

For direct integration with AddressSanitizer workflows:

=================================================================
==VMF==ERROR: AddressSanitizer: DEBT-SUMMARY on target [Vendor]
    Scan time: 45.2s | Files: 89 | Points: 32847
    Real findings: 5200 (847 critical, 2103 high)
    Collapse rate: 84.2%
    Max D_e: 0.94 (builtins/typing.cc)
    Avg D_e: 0.82
    Chains: 3 (top CVSS 8.0)
    Bottleneck: heap_corruption (betweenness 0.42)
    KUs matched: 35/35 | NKUs: 0
    Fuzzer hit rate: 43/43 (100%)
    Overall assessment: MAXIMUM DEBT — structural exploitation expected
=================================================================

8.2.4 PDF Report (Audit Suite)

For client-facing consulting engagements, the audit CLI generates professional PDF reports:

  • Company-branded cover page
  • Executive summary with debt scores
  • Per-finding breakdown with code snippets
  • AttackGraph visualization
  • CVSS scores with Feynman Gate status
  • Remediation recommendations with priority
  • Pricing and engagement terms

8.3 The Debt Dashboard

The vmf report command generates a terminal-based dashboard:

╔══════════════════════════════════════════════════════════════╗
║                  DEBT COLLECTOR DASHBOARD                   ║
║              Target: [Vendor]/src/parsing/                        ║
║              Time: 2026-07-17 10:30:00                      ║
╠══════════════════════════════════════════════════════════════╣
║  LAYER  │ STATUS │ FINDINGS │ DEBT │ CHAINS │ TIME         ║
║─────────┼────────┼──────────┼──────┼────────┼──────────────║
║  §1 VMF │ DONE   │ 32,847   │ 0.82 │ 3      │ 45.2s        ║
║  §2 UMM │ DONE   │ 7        │ 0.72 │ —      │ 0.3s         ║
║  §3 FZ  │ DONE   │ 43       │ —    │ 1      │ 12.9ms       ║
║  §4 PIP │ DONE   │ 43/43    │ —    │ 1      │ 8.1ms        ║
║  §5 KU  │ DONE   │ 35/35    │ —    │ 1      │ 1.2ms        ║
║  §6 AG  │ DONE   │ 3 paths  │ —    │ 3      │ 4.5ms        ║
╠══════════════════════════════════════════════════════════════╣
║  TOP CHAINS:                                                ║
║  ┌─ CC-[Vendor]-001 (CVSS 8.0)                                   ║
║  │  recon_info → heap_corruption → code_execution          ║
║  │  Steps: 2 | Bottleneck: heap_corruption (0.42)          ║
║  │  PoC: confirmed (ASAN heap-buffer-overflow)              ║
║  ├─ CC-[Vendor]-002 (CVSS 7.5)                                   ║
║  │  recon_info → type_confusion → code_execution           ║
║  └─ CC-[Vendor]-003 (CVSS 7.5)                                   ║
║     recon_info → heap_corruption → type_confusion → code   ║
╠══════════════════════════════════════════════════════════════╣
║  BOTTLENECKS:                                               ║
║  heap_corruption (0.42) — FIX THIS, COLLAPSE 42% PATHS     ║
╚══════════════════════════════════════════════════════════════╝

8.4 Verification Badges

Every finding can be annotated with verification badges:

Badge Meaning
ASAN CONFIRMED Crash reproduced under AddressSanitizer
CRASH VERIFIED Fuzzer hit confirmed on target
PoC EXISTS Working proof-of-concept available
FEYNMAN PASS Passed all 10 Feynman Gate questions
[Vendor] P2/S2 Confirmed by Android Security Team
⚠️ FEYNMAN WARN Some Feynman questions flagged
NO PoC No working proof-of-concept
COLLAPSED Failed projection engine validation

These are overlaid on PoC videos and included in submission reports for credibility.


8.5 Submission Package Generator

The vmf export command generates an Immunefi/[Vendor]/[Vendor]-ready submission package:

vmf export -i findings.json -o submission_package/

Output structure:

submission_package/
├── README.md                  # Overview with CVSS scores
├── SUBMISSION.md              # Full report
├── findings.json              # Machine-readable
├── poc/                       # PoC files
│   ├── poc_exploit.cc         # Primary exploit PoC
│   ├── README.md              # Build and run instructions
│   └── Makefile               # Easy build
├── evidence/                  # Supporting evidence
│   ├── asan_output.txt        # ASAN crash log
│   ├── fuzzer_results.json    # Fuzzer statistics
│   ├── attack_graph.png       # Visualization
│   └── verification_badges.png # Badges overlay
└── THREAT_MODEL.md            # AttackGraph with STRIDE

8.6 CLI Usage

# Dashboard
vmf report
vmf status

# Specific report
vmf report --findings findings.json --output report.json

# Export for submission
vmf export -i findings.json -o submission_package/
vmf export -i findings.json --format immunefi
vmf export -i findings.json --format [Vendor]

# HTML memory map
umm --html 12345 -o memory_map.html

# PDF report (audit suite)
audit report findings.json -c "Client Name" -p "Project Name"

# Video PoC
vmf video exploit_demo -c "./run_poc.sh; cat crash.log"
vmf video exploit_demo --badges "ASAN CONFIRMED,CRASH VERIFIED,FEYNMAN PASS"

Leave a Comment