Getting Started with HAVOC

HAVOC is a framework-aware security scanner that understands your Laravel application's security model. Unlike generic SAST tools, HAVOC knows what a missing $this->authorize() call means in context โ€” and only flags what's actually exploitable.

Open core โ€” The CLI and GitHub Action are free and open source. The cloud dashboard (history, trends, AI features) is a paid add-on.

Quickstart

1

Install the CLI

Install globally via npm:

npm install -g @havoc-security/cli

# Verify
havoc --version  # havoc v1.0.0

Or run without installing: npx @havoc-security/cli scan

2

Run your first scan

From the root of your Laravel project:

havoc scan

HAVOC auto-detects your framework and runs all 9 analyzers. Results appear within 30 seconds.

3

Add to CI

Create .github/workflows/havoc.yml:

name: HAVOC Security Scan
on: [push, pull_request]

jobs:
  havoc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@@v4
      - uses: havoc-security/scan-action@@v1
        with:
          api-key: {{ secrets.HAVOC_API_KEY }}
4

Connect to the cloud (optional)

Sign in at havoc.cloud with GitHub, then:

havoc auth login

Enables dashboard, historical trends, AI triage, and team features.

Installation

npm (recommended)

npm install -g @havoc-security/cli

Composer

composer global require havoc/cli
# or dev dependency:
composer require --dev havoc/cli

Binary downloads

Standalone binaries for macOS, Linux, and Windows are on the releases page.

System requirements

RequirementMinimumNotes
Node.js18.xRequired for npm install
PHP8.1Required to scan PHP projects
GitAnyFor diff-aware CI scanning

Your First Scan

When you run havoc scan, HAVOC:

  1. Detects your framework from composer.json
  2. Parses PHP files into an AST
  3. Runs all 9 analyzers
  4. Deduplicates findings
  5. Calculates authorization coverage %
  6. Outputs results to terminal or cloud

Understanding output

๐Ÿ”ด HIGH  [HAVOC-001] Missing authorization gate
   TransactionController.php:142
   bulkConfirm() has no $this->authorize() call

๐ŸŸก MED   [HAVOC-002] Unescaped Blade output
   resources/views/investor/show.blade.php:23

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Authorization Coverage: 132/147 (89.8%)
  Findings: 1 High ยท 1 Medium ยท 1 Low
  Scan time: 18.4s

Severity levels

SeverityMeaningAction
CriticalExploitable, likely data breachFix before merging
HighReal vulnerability, exploitable with contextFix before release
MediumVulnerability exists, exploitability variesFix within sprint
LowDefense-in-depth gapFix when convenient
InfoObservation onlyReview if needed