INNER CODE UNIT · Python

_start_campaign_run

0xSteph/pentest-ai · cli/main.py:1401

def _start_campaign_run(
    targets: list[str], scope: str, intensity: str, ci: bool,
    *, scope_allow: list[str] | None = None, scope_exclude: list[str] | None = None,
    scope_file: str | None = None, strict_scope: bool = False,
) -> None:
    """Create a campaign with one engagement per target. Does not auto-run scans.

    Persists the confirmed scope_json (and strict_scope) on every engagement so
    resume / retest / live rebuild the exact scope the operator confirmed at
    campaign start, rather than a possibly-broader scope from config (Bugbot #60).

    Each engagement is bounded to ITS OWN target host plus only the explicit
    --scope-allow / --scope-file / config extras (wildcards, CIDRs, allows) and
    the exclusions — never the sibling targets. The per-target enforcer is seeded
    from the single target string, so no normalization mismatch can leak one
    engagement's host into another's scope_json (Bugbot: campaign scope leak)."""
    import asyncio

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…