↓ Skip to main content

Stored XSS

The payload goes in and waits. One of mine sat in a Google Cloud project name for two months before anything happened.

2016

patrik.re

Google Cloud Console: dormant stored XSS

An XSS payload stored as a Google Cloud project name executed months later in the unfiltered project-deletion error message, earning a $5,000 VRP reward, plus the impact argument that got it past a self-XSS classification.

2015

patrik.re

XSS via XML File Upload on PayPal

PayPal's invoicing feature accepted .xml attachments, and an XHTML-namespaced script element inside the XML executed when the file was served back. Includes the exploitability argument needed to qualify it for a bounty.

2014

patrik.re

PayPal Stored XSS via a Signup Flow Bypass

A stored XSS in PayPal's account name field, delivered to arbitrary users through invoices after bypassing the signup flow's security check by truncating the workflow URL to /webapps/.

patrik.re

XSS in Google Tag Manager via JSON Import

Google Tag Manager validated macro names in the web UI but not in the JSON container import path, so a payload smuggled through a file upload executed and earned a $5,000 bounty.

patrik.re Archive

Seven PayPal Bugs, Zero Bounties

A 2014 run through PayPal's bug bounty scope: seven confirmed issues across paypal.com, financing.paypal.com, apps.paypal.com and the paypal-*.com family, all closed as duplicate or invalid.