How Bastion works

From the first attack to a fix that holds, only inside the limits you set

01

From first attack to merged fix

Every step, in the tools you already use

github.com/apps/bastion/installations/new
GitHub Apps
Install

Install Bastion

on your organization acme

Repository access

acme/payments-api acme/web

Bastion will be able to

  • Read code and metadata
  • Read and write pull requests
  • Read and write checks
InstallBastion maps your routes and inputs from the code it can read

Integrate with your environment

02

Fix at the root

Every fix comes from an attack that landed, so you can merge it without triage.

1

Add the GitHub app

Bastion
Add to GitHub
2

The pentest lands an attack

Orders marked paid without a real payment

Confirmed by sending a payment notice with the signature removed

3

The fix opens from that result

Verify payment notifications

Opened by Bastion from the pentest result

A watercolour of a brass desk lamp whose shade holds a glass prism, lighting only the changed lines of a pull request

03

Then we attack again

1 Intended

POST /payments/notify

order: 1042

status: paid

signature: a1f9…

200 OKReal payment
↓Remove the signature
2 Before the fix

POST /payments/notify

order: 1042

status: paid

signature: (none)

200 OKPaid by anyone
↓Fix it
3 After the fix

POST /payments/notify

order: 1042

status: paid

signature: (none)

401Blocked
↓Try every variation
4 Variations
  • signature: ""401
  • signature: null401
  • signature: %00401
  • signature: =401
  • signature ×2401
All blockedThe fix holds

04·CVE-2026-61663 found, disclosed and fixed upstream·more write-ups

05

Only inside the line you draw

Scope

Limits

06

What never changes

You set the scope

Domains, endpoints and agents, verified as yours. Nothing outside it is touched

Our own test accounts

Seeded with synthetic secrets. Your users' accounts and data are never accessed

Nothing deleted

Access is proven, never used to remove anything

Unproven stays unproven

A step we can't show safely is marked unverified, not asserted

A watercolour of a stone watchtower whose prism lantern casts blue light only inside a line around it