315 challenges · 18 vulnerability classes · 9 languages
Security challenges.
Real code, single-line vulnerabilities. Filter by stack, difficulty, or vulnerability class.
315total
94easy
154medium
67hard
hard
Webhook Signatures
TollGate is a payments backend that fulfills digital orders for an online game store. When a customer pays, the payment provider (PayRail) sends a signed webhook to TollGate, which verifies the HMAC signature before flipping the order to PAID and releasing the game keys. The signing secret never leaves the server, yet finance keeps reporting orders marked paid that PayRail has no record of. Review how the incoming webhook is authenticated.
LanguagepythonVulnerabilitySide ChannelDomainAPI
200 ptsOpen challenge →
medium
E-Invoice Parser
LedgerLink is a B2B invoicing SaaS where suppliers upload invoices in the standard UBL XML e-invoice format. The platform parses each upload to extract line items and totals, then renders them back in the supplier dashboard. The accounting team recently noticed odd values appearing in invoice fields. Review the XML ingestion pipeline and find the flaw that lets a malicious supplier read server-side data.
LanguagepythonVulnerabilityInformation DisclosureDomainWeb
150 ptsOpen challenge →
medium
Receipt Spill
ReceiptPad is a bookkeeping API for freelancers who need to generate shareable PDF receipt packets for clients. The export endpoint preallocates a response buffer to keep large receipt downloads fast. Review the PDF export flow, especially the interaction between requested page count, unsafe buffer preallocation, and the bytes returned in the HTTP response.
Languagejavascript / typescriptVulnerabilityMemory SafetyDomainAPI
200 ptsOpen challenge →
easy
P2P Money Transfer
DashCash is a peer-to-peer money app built with Express and Node.js where users send funds to friends by entering a recipient handle and an amount. The transfer endpoint recalculates everything server-side and updates both balances in a single handler. Review the /transfer route and decide whether the amount is handled safely.
Languagejavascript / typescriptVulnerabilityBusiness LogicDomainAPI
100 ptsOpen challenge →
easy
Query Link Invite
LaunchLane is a Spring Boot platform for deploying production projects and managing teammates through Spring for GraphQL. A legacy link-sharing transport lets developers open GraphQL documents from the internal explorer. Review the GET and POST GraphQL paths and how they handle browser-authenticated state changes. A successful exploit lets an attacker add their email as an organization owner, exposing deployments, environment secrets, and customer infrastructure.
LanguagejavaVulnerabilityCSRF (Cross-Site Request Forgery)DomainGraphQL
100 ptsOpen challenge →
Showing 12 of 315
Full archive
Premium unlocks all 315 challenges.
Full challenge access, the complete archive, and learning paths.
See pricing