Perfai

    Security that ships
    as a pull request.

    Perfai Security is black-box AppSec for engineers. Point it at staging or a spec. Get reproducible exploits, a typed model of your API, and a scoped PR that closes the bug. Runs in CI on every commit.

    No agent install Repro for every finding CI-native
    ~ perfai scan
    $ npx perfai scan --target https://staging.acme.dev \
                      --spec ./openapi.yaml
    
    → mapping surface .......... 142 routes, 38 auth-scoped
    → synthesizing payloads .... 8,412 cases
    → running adaptive attacks . OK
    
    HIGH  BOLA   GET  /api/v2/invoices/:id
    MED   SSRF   POST /api/v2/webhooks/test
    MED   AuthZ  GET  /api/admin/users
    
    ✓ opened PR #4412  ·  patch verified  ·  exploit fails
    Works against the stack you already run
    Node.jsNext.jsDjangoFastAPIRailsGoSpringLaravelGraphQLRESTgRPCtRPCSupabaseFirebasePostgreSQLMongoDB
    Coverage

    The classes that actually get you breached.

    Perfai Security prioritizes the bug classes that show up in real incident reports, not the ones that pad a CVSS table. Every finding includes a working exploit and the exact patch that closes it.

    CWE-639
    BOLA / IDOR

    Authorization checks missing on object IDs. Perfai Security fuzzes path and body params across tenants and proves cross-account reads.

    CWE-918
    SSRF on outbound fetch

    User-controlled URLs hitting internal services. We probe metadata endpoints, link-local ranges, and DNS rebinding.

    CWE-89 / 77
    Injection

    SQL, NoSQL, OS command, and template injection. Time-based and error-based oracles, no source needed.

    OWASP LLM01
    Prompt injection & tool abuse

    Indirect injection through documents, RAG sources, and tool outputs. Tested against your real prompt graph.

    The loop

    Map. Attack. Patch. Re-test.

    01
    Point Perfai Security at your environment

    Staging URL, an OpenAPI spec, or a Postman collection. Optional service account for authenticated routes. SSO and short-lived tokens supported.

    02
    Vision Agent maps the surface

    Crawls routes, parses your spec, infers auth boundaries, and builds a typed graph of endpoints, params, and roles.

    03
    Security Agent runs adaptive attacks

    Per-endpoint payload synthesis. Stateful chains for multi-step bugs. Every finding ships with a curl repro and HTTP transcript.

    04
    Fix Agent opens a PR

    Diff scoped to the smallest safe change. Re-tests the patch in an ephemeral branch and only marks resolved when the exploit fails.

    drops into your pipeline
    # .github/workflows/perfai.yml
    name: perfai
    on: [pull_request]
    jobs:
      scan:
        runs-on: ubuntu-latest
        steps:
          - uses: perfai/action@v1
            with:
              target: ${{ secrets.STAGING_URL }}
              spec:   ./openapi.yaml
              token:  ${{ secrets.PERFAI_TOKEN }}
              fail-on: high
    a finding, machine readable
    {
      "id": "F-9c41",
      "severity": "high",
      "cwe": "CWE-639",
      "endpoint": "GET /api/v2/invoices/:id",
      "evidence": {
        "actor":   "user_A (org_1)",
        "target":  "invoice_8821 (org_2)",
        "status":  200,
        "leaked":  ["customer_email","total_cents"]
      },
      "repro": "curl -H 'Authorization: Bearer $A' \\
      https://api.acme.dev/api/v2/invoices/8821",
      "fix_pr": "https://github.com/acme/api/pull/4412"
    }
    p95 scan time
    11 min
    per service, parallel agents
    False positive rate
    < 1%
    every finding has a working repro
    Mean time to PR
    9 min
    from finding to opened patch
    Auth methods
    12+
    OAuth, JWT, session, mTLS, SAML…
    Why engineers pick it

    No queue. No triage. No security ticket purgatory.

    Old AppSec produced a CSV. You owned the rewrite. Perfai Security produces a diff. You review and merge. If the patch does not kill the exploit, the finding does not close.

    From "scan started" to "PR opened" in under 15 minutes on most services.
    CLI first
    perfai scan ... works the same locally and in CI.
    Proof, not probability
    Every HIGH ships with a curl repro and HTTP transcript.
    Patches, not tickets
    Diffs scoped to the smallest safe change, re-tested before merge.
    Noise budget
    Tunable severity gates so PRs only fail on what matters.
    FAQ

    Engineer questions, answered straight.

    How is this different from DAST tools like ZAP or Burp?+

    Legacy DAST fuzzes blindly and floods you with noise. Perfai Security builds a typed model of your API first, then synthesizes payloads per-endpoint with awareness of auth, state, and tenancy. You get exploits, not alerts.

    Do you need source code?+

    No. Perfai Security works black-box against a running environment. If you want richer fixes, connect the repo and Fix Agent will scope diffs to the smallest safe change.

    How do you handle authenticated routes?+

    Service accounts, refresh tokens, OAuth client credentials, SAML assertions, or a login script. Perfai Security rotates identities to test BOLA and tenant isolation across roles.

    Can I run this in CI?+

    Yes. GitHub Actions, GitLab CI, CircleCI, and Jenkins. Gate PRs on severity, post results as PR comments, and re-test on every push.

    What about LLM endpoints and agents?+

    Perfai Security tests prompt injection, tool abuse, system prompt leakage, and unsafe tool chains. Works against OpenAI, Anthropic, Bedrock, and self-hosted models.

    Is the traffic safe?+

    Payloads are non-destructive by default. Write operations are gated behind explicit allow-lists and run only against environments you tag as non-prod.

    Ship secure AI apps

    Try Perfai Security now

    Point us at a URL. First finding in under 20 minutes. No credit card.