Skip to content

Route-Level Cryptographic Verification for GitHub Webhooks#22

Open
shouryaawr wants to merge 1 commit into
MabudAlam:mainfrom
shouryaawr:fix
Open

Route-Level Cryptographic Verification for GitHub Webhooks#22
shouryaawr wants to merge 1 commit into
MabudAlam:mainfrom
shouryaawr:fix

Conversation

@shouryaawr
Copy link
Copy Markdown

@shouryaawr shouryaawr commented May 22, 2026

Hi, @MabudAlam ,This security fix injects reusable fastapi dependencies into BugViper's unauthenticated webhook endpoints (/onComment and /marketplace) to verify the authenticity of inbound traffic directly at the route level.
The validation layer reads the raw request body bytes via await request.body()—safely utilizing fastapi's internal caching so downstream handlers can re-read the payload seamlessly—and extracts the X-Hub-Signature-256 header. It computes a local HMAC-SHA256 digest using the server's environment secrets and uses hmac.compare_digest to mitigate side-channel timing attacks. If the signature header is missing, malformed, or fails to match the computed digest, the dependency raises an immediate 403 forbidden exception. This strictly prevents unauthorized or spoofed webhook deliveries from triggering repository ingestions or agent reviews, which naturally insulates downstream cloud run and cloud tasks allocations from malicious resource exhaustion.
Can you please review my work.
Closes #21

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing GitHub Webhook Signature Verification (X-Hub-Signature-256)

1 participant