-
Notifications
You must be signed in to change notification settings - Fork 8
core: the API has no authentication whatsoever #42
Copy link
Copy link
Open
Labels
GrantFox OSSIssue tracked in GrantFox OSSIssue tracked in GrantFox OSSThird CampaignCampaign: Third CampaignCampaign: Third Campaignarea:coreServer bootstrap and pluginsServer bootstrap and pluginsdifficulty:hardDesign judgement required; subtle failure modesDesign judgement required; subtle failure modespriority:criticalBlocks everything else; security or build-breakingBlocks everything else; security or build-breakingtype:securityAuth, funds, secrets, or abuse surfaceAuth, funds, secrets, or abuse surface
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
GrantFox OSSIssue tracked in GrantFox OSSIssue tracked in GrantFox OSSThird CampaignCampaign: Third CampaignCampaign: Third Campaignarea:coreServer bootstrap and pluginsServer bootstrap and pluginsdifficulty:hardDesign judgement required; subtle failure modesDesign judgement required; subtle failure modespriority:criticalBlocks everything else; security or build-breakingBlocks everything else; security or build-breakingtype:securityAuth, funds, secrets, or abuse surfaceAuth, funds, secrets, or abuse surface
Problem
No route requires credentials.
src/index.tsregisters CORS and two routeplugins, and that is the whole security model. Every endpoint added from here —
attestation submission, usage ingestion, admin operations — inherits open
access by default, which is the wrong direction to build in.
What to do
Establish the auth layer before more routes land:
the key. Prefix keys so they are detectable in leak scanning, and support
rotation with an overlap window.
preHandlerthat is applied by default and must be explicitlyopted out of for public routes. Deny by default; an endpoint that forgets to
declare auth should fail closed, not open.
attest:write,usage:write,export:read,admin.Acceptance criteria
Notes
Blocks the attestation, usage, and export endpoints. Worth doing first —
retrofitting auth across a grown route surface is where gaps get left.