James Kettle
@jameskettle.com
π€ 4454
π₯ 134
π 240
Director of Research at
@portswigger.net
Also known as albinowax Portfolio:
https://jameskettle.com/
pinned post!
Hi all! I'll be posting about web security research. You can find a curated list of my past research, tools & presentations at
https://jameskettle.com/
loading . . .
James Kettle research portfolio
https://jameskettle.com
over 2 years ago
0
28
1
Access control bypass via header smuggling, with no desync required! Using header smuggling for more than HTTP desync like this is totally underrated - a lot of defences only filter the CL and TE headers. You can detect these with Parser Discrepancy Scan.
www.linkedin.com/posts/jakedm...
loading . . .
Excited to share that I recently identified and responsibly disclosed a security vulnerability in Akamai's edge servers, which has now been fully remediated and assigned CVE-2026-26365! The issue...
Excited to share that I recently identified and responsibly disclosed a security vulnerability in Akamai's edge servers, which has now been fully remediated and assigned CVE-2026-26365! The issue inv...
https://www.linkedin.com/posts/jakedmurphy1_excited-to-share-that-i-recently-identified-activity-7431735557115789313-xhnA/
5 days ago
0
5
2
reposted by
James Kettle
Gareth Heyes
20 days ago
New geolocation-based XSS vectors just landed in our XSS cheat sheet. Huge thanks to AmirMohammad Safari for the great submission.
portswigger.net/web-security...
0
5
2
The voting has concluded, and we're thrilled to announce the top ten web hacking techniques of 2025! Massive thanks to everyone in the community for sharing their hard-earned discoveries, plus the panel and everyone who nominated or voted!
portswigger.net/research/top...
loading . . .
Top 10 web hacking techniques of 2025
Welcome to the Top 10 Web Hacking Techniques of 2025, the 19th edition of our annual community-powered effort to identify the most innovative must-read web security research published in the last year
https://portswigger.net/research/top-10-web-hacking-techniques-of-2025
25 days ago
1
10
7
Thanks to everyone who nominated & voted in the top ten! The panel of
@irsdl.bsky.social
,
@agarri.fr
,
@liveoverflow.bsky.social
and myself are hard at work reviewing the 15 finalists... we're hoping to announce the winners next week!
about 1 month ago
0
8
1
reposted by
James Kettle
Gareth Heyes
about 1 month ago
We've just hit a very important milestone - our XSS Cheat Sheet now has 1337 vectors! Browse them here:
portswigger.net/web-security...
1
14
3
Love web & AI security research? Want to do it full time on-site with myself, Gareth Heyes & Zak Fedotkin? Join the PortSwigger Research team - we're hiring!
apply.workable.com/portswigger/...
about 1 month ago
0
8
8
reposted by
James Kettle
PentesterLab
about 1 month ago
π₯ CVE-2026-23993: HarbourJwt JWT auth bypass via unknown alg. Not just alg=none: unsupported alg => empty signature, so forged token header.payload. passes. Write-up + fix:
pentesterlab.com/blog/cve-202...
loading . . .
CVE-2026-23993: JWT authentication bypass in HarbourJwt via βunknown algβ
I didn't know Harbour even existed as a language when I found this bug. The fun part is that I also ...
https://pentesterlab.com/blog/cve-2026-23993-harbourjwt-unknown-alg-jwt-bypass
0
6
7
Voting is now live for the top ten web hacking techniques of 2025! Grab a brew, browse the 61 quality nominations and cast your vote on the most creative and ground-breaking techniques:
portswigger.net/polls/top-10...
loading . . .
Top 10 web hacking techniques of 2025
Welcome to the community vote for the Top 10 Web Hacking Techniques of 2025.
https://portswigger.net/polls/top-10-web-hacking-techniques-2025
about 2 months ago
0
7
5
Nominations for the Top 10 (new) Web Hacking Techniques of 2025 are now live! Review the submissions & make your own nominations here:
portswigger.net/research/top...
loading . . .
Top 10 web hacking techniques of 2025: call for nominations
Over the last year, security researchers have shared a huge amount of work with the community through blog posts, presentations, and whitepapers. This is great, but it also means genuinely reusable te
https://portswigger.net/research/top-10-web-hacking-techniques-of-2025-nominations-open
about 2 months ago
0
9
2
reposted by
James Kettle
Luke Jahnke
2 months ago
nastystereo.com/security/rub...
loading . . .
Ruby Array Pack Bleed / nastystereo.com
https://nastystereo.com/security/ruby-pack.html
0
2
1
reposted by
James Kettle
Gareth Heyes
3 months ago
Bypass CSP in a single click using my new Custom Action, powered by @renniepak.nl's excellent CSP bypass project.
loading . . .
1
12
6
Turbo Intruder now has API docs! You can easily discover its many advanced features including - pauseMarker for pause-basd desync.. or DoS - decorators for easy response filtering - 'randomPlz' - wordlists.clipboard for lazy attack setup ...and many more!
github.com/PortSwigger/...
3 months ago
1
3
1
reposted by
James Kettle
Gareth Heyes
3 months ago
Meet AutoVader. It automates DOM Invader with Playwright Java and feeds results back into Burp. Faster client side bug hunting for everyone. π
thespanner.co.uk/autovader
loading . . .
AutoVader - The Spanner
Four years ago we released DOM Invader, I added a feature called callbacks that enabled you to execute JavaScript and log when sinks, messages or sources are found. This was so powerful but over the y...
https://thespanner.co.uk/autovader
0
12
7
reposted by
James Kettle
Rebane
3 months ago
my new blogpost is out!! this one talks about a new web vulnerability class i discovered that allows for complex interactive cross-origin attacks and data exfiltration and i've already used it to get a google docs bounty ^^ have fun <3
lyra.horse/blog/2025/12...
loading . . .
SVG Filters - Clickjacking 2.0
A novel and powerful twist on an old classic.
https://lyra.horse/blog/2025/12/svg-clickjacking/
8
184
56
You can now scan for
#react2shell
in Burp Suite! To enable, install the Extensibility Helper bapp, go to the bambda tab and search for react2shell. Shout-out to Assetnote for sharing a quality detection technique!
3 months ago
0
15
3
reposted by
James Kettle
Gareth Heyes
3 months ago
π Shadow Repeater just got a big upgrade! It now detects response timing differences.
thespanner.co.uk/shadow-repea...
loading . . .
Shadow Repeater v1.2.3 release - The Spanner
The new version of Shadow Repeater has been released with a couple of cool new features. Timing differences Shadow Repeater analyses your Repeater requests and looks for response differences but it wa...
https://thespanner.co.uk/shadow-repeater-v123-release
0
5
2
I've just upgraded Turbo Intruder with a shiny new algorithm called HTTP Anomaly Rank, which automatically finds the most unusual responses in your attack! Here's a quick demo, full details in the writeup below:
youtu.be/z92GobdN40Y
loading . . .
HTTP Anomaly Rank - a new Turbo Intruder feature
YouTube video by PortSwigger
https://youtu.be/z92GobdN40Y
4 months ago
2
14
5
reposted by
James Kettle
PortSwigger Research
4 months ago
We've updated our XSS cheat sheet to include 9 new vectors from
@garethheyes.co.uk
! Here are the top three, you can find the rest here:
portswigger.net/web-security...
3
175
20
Google Cloud Platform was vulnerable to a HTTP desync attack leading to "responses being misrouted between recipients for certain third-party models". Aka your LLM response goes to someone else. The Expect header strikes again! Context:
http1mustdie.com
cloud.google.com/support/bull...
loading . . .
Security Bulletins Β |Β Customer Care Β |Β Google Cloud
https://cloud.google.com/support/bulletins#gcp-2025-059
4 months ago
0
14
5
HTTP is supposed to be stateless, but sometimes... it isn't! Some servers create invisible vulnerabilities by only validating the first request on each TCP/TLS connection. I've just published a Custom Action to help you detect & exploit this - here's a narrated demo:
youtu.be/BAZ-z2fA8E4
loading . . .
HTTP is supposed to be stateless...
YouTube video by PortSwigger
https://youtu.be/BAZ-z2fA8E4
4 months ago
1
22
6
The official @defcon recording of HTTP/1.1 Must Die has landed - join me on the mission to help kill HTTP/1.1!
www.youtube.com/watch?v=PUCy...
loading . . .
DEF CON 33 - HTTP 1 1 Must Die! The Desync Endgame - James 'albinowax' Kettle
YouTube video by DEFCONConference
https://www.youtube.com/watch?v=PUCyExOr3sE
5 months ago
0
5
1
The recording of "HTTP/1.1 must die: the desync endgame" has now landed on YouTube. Enjoy!
www.youtube.com/watch?v=zr5y...
loading . . .
RomHack 2025 - James βalbinowaxβ Kettle - HTTP/1.1 Must Die! The Desync Endgame
YouTube video by Cyber Saiyan
https://www.youtube.com/watch?v=zr5y6Bapbnw&list=PLoX0sUafNGbEkK0ai5P_DB2HDnljRAJyZ&index=1
5 months ago
1
15
3
reposted by
James Kettle
d4d
5 months ago
Iβm excited to announce that Iβll be presenting The Fragile Lock: Novel Bypasses for SAML Authentication at Black Hat Europe! In this talk, Iβll show how I was able to continuously bypass security patches to achieve complete auth bypass for major libraries.
#BHEU
@blackhatevents.bsky.social
0
26
6
It was an absolute privilege to present at
#RomHack2025
with such a vibrant and welcoming community! Thanks to everyone who said hi and shared your stories!
5 months ago
1
12
0
One hour till HTTP/1.1 Must Die kicks off at
#romhack2025
! Watch the livestream here:
m.youtube.com/watch?v=T009...
loading . . .
RomHack Conference 2025 Live Stream
YouTube video by Cyber Saiyan
https://m.youtube.com/watch?v=T009mzzoxvs
5 months ago
0
13
2
I'm flying out to
#romhack2025
tomorrow, for the final edition of HTTP/1.1 Must Die! Feel free to say hi if you'd like to chat.
5 months ago
0
12
0
HTTP/1.1 Must Die is coming to
#romhack2025
as the keynote! In-person tickets are sold out but you can still watch the livestream. This is your last chance to catch it live - register to watch here:
www.youtube.com/watch?v=T009...
loading . . .
RomHack Conference 2025 Live Stream
YouTube video by Cyber Saiyan
https://www.youtube.com/watch?v=T009mzzoxvs
5 months ago
0
9
4
reposted by
James Kettle
d4d
6 months ago
Dive into WebSocket Turbo Intruder 2.0 - fuzz at scale, automate complex multi-step attacks, and exploit faster. The blog post is live! Read it here:
portswigger.net/research/web...
loading . . .
WebSocket Turbo Intruder:Β Unearthing the WebSocket Goldmine
Many testers and tools give up the moment a protocol upgrade to WebSocket occurs, or only perform shallow analysis. This is a huge blind spot, leaving many bugs like Broken Access Controls, Race condi
https://portswigger.net/research/websocket-turbo-intruder-nbsp-unearthing-the-websocket-goldmine
0
13
6
reposted by
James Kettle
Compass Security
6 months ago
We use
@jameskettle.com
Burp extension Collaborator Everywhere daily. Now our upgrades are in v2: customizable payloads, storage, visibility. Perfect for OOB bugs like SSRF. Find out more here:
blog.compass-security.com/2025/09/coll...
#AppSec
#BurpSuite
#Pentesting
0
8
6
reposted by
James Kettle
d4d
6 months ago
We've just published a novel technique to bypass the __Host and __Secure cookie flags, to achieve maximum impact for your cookie injection findings:
portswigger.net/research/coo...
loading . . .
Cookie Chaos: How to bypass __Host and __Secure cookie prefixes
Browsers added cookie prefixes to protect your sessions and stop attackers from setting harmful cookies. In this post, youβll see how to bypass cookie defenses using discrepancies in browser and serve
https://portswigger.net/research/cookie-chaos-how-to-bypass-host-and-secure-cookie-prefixes
1
12
14
reposted by
James Kettle
Gareth Heyes
6 months ago
Imagine you have a XSS vulnerability but you have a undefined variable before your injection. Is all hope lost? Not at all you can use a technique called XSS Hoisting to declare the variable and continue your exploit. Thanks to ycam_asafety for the submission.
portswigger.net/web-security...
2
15
6
When I condense nine months of research discoveries into a 40-min talk, it can make it seem easy. For a taster of the true experience, watch my battle to solve the 0-CL @WebSecAcademy lab! Research is persistence.
www.youtube.com/live/B7p8dIB...
loading . . .
Novel HTTP/1 Request Smuggling/Desync Attacks with James Kettle
YouTube video by Off By One Security
https://www.youtube.com/live/B7p8dIB7bFg
6 months ago
0
12
4
I just published a Repeater feature to make it easier to explore request smuggling. It repeats your request until the status code changes. It's called "Retry until success" and you can install it via the Extensibility helper bapp.
6 months ago
1
14
5
Ever seen two responses to one request? That's just pipelining... or is it? I've just published "Beware the false false-positive: how to distinguish HTTP pipelining from request smuggling"
portswigger.net/research/how...
loading . . .
Beware the false false-positive: how to distinguish HTTP pipelining from request smuggling
Sometimes people think they've found HTTP request smuggling, when they're actually just observing HTTP keep-alive or pipelining. This is usually a false positive, but sometimes there's actually a real
https://portswigger.net/research/how-to-distinguish-http-pipelining-from-request-smuggling
6 months ago
0
13
6
reposted by
James Kettle
Thomas Stacey
7 months ago
"This strategy creates an avalanche of desync research leads" is somehow an understatement. Take Smuggler for a spin on your largest burp file right now and just watch the issue counter π₯. If you want even more results, adding new headers / perms looks to be trivial (it's one line of code).
0
4
1
Massive thanks to everyone who came to watch HTTP/1.1 Must Die at Black Hat USA & DEF CON! It was great to meet you all and hear your stories, had an absolute blast and I'm psyched to cook up some more madness for next year!
7 months ago
0
16
0
You can currently watch http/1.1 must die here! Note the link will expire at some point.
m.youtube.com/watch?v=ssln...
loading . . .
DEFCON 33: Track 1 Talks
YouTube video by DEFCONConference
https://m.youtube.com/watch?v=sslnkb4MnTg&t=25152s&pp=2AHAxAGQAgE%3D
7 months ago
0
11
3
Watch HTTP/1.1 Must Die live today at 1630 PST! - In person at
#defcon33
track 1, main stage - Livestream via YouTube:
www.youtube.com/watch?v=ssln...
7 months ago
2
7
2
The whitepaper is live! Learn how to win the HTTP desync endgame... and why HTTP/1.1 needs to die:
http1mustdie.com
loading . . .
HTTP/1.1 Must Die
Upstream HTTP/1.1 is inherently insecure, and routinely exposes millions of websites to hostile takeover. Join the mission to kill HTTP/1.1 now
https://http1mustdie.com/
7 months ago
0
40
24
At
#BlackHat
? Catch "HTTP/1.1 Must Die! The Desync Endgame" today at 3:20 in Oceanside A, Level 2. Hope to see you there!
7 months ago
0
8
1
Let me know if you'd like to chat research at Black Hat or
#defcon33
! Also feel free to say hi if you see me about, I've got a not-very-subtle laptop cover to aid recognition π
7 months ago
0
11
1
Not at Black Hat / DEF CON? You can still join the mission to kill HTTP/1.1: - Watch the livestream from
#DEFCON
at 16:30 PT on the 8th - Read the whitepaper on our website - Grab the HTTP Request Smuggler update & WebSecAcademy lab Follow for updates & links. It's nearly time!
loading . . .
Upcoming Conference Talks - PortSwigger Research
Find details of upcoming talks from the PortSwigger Research team. We also have research papers and recordings available from previous conferences and events.
https://portswigger.net/research/talks?talkId=32
7 months ago
0
12
2
Our core website uses HTTP/2 end to end, but for maximum irony http1mustdie[.]com is stuck using HTTP/1.1 upstream due to AWS CloudFront limitations! However it's in scope for our bounty program... and if you manage to exploit it with HTTP request smuggling, we'll pay a bonus :)
7 months ago
0
10
4
Ever seen a header injection where achieving a desync seemed impossible? I think I've finally identified the cause - nginx doesn't reuse upstream connections by default, and often has header injection. This means you're left with a blind request tunneling vulnerability π
7 months ago
1
8
0
You know those non-vulnerabilities that companies get forced to fix for compliance reasons? I've found a full bypass for a common patch strategy. I'm half-tempted to keep it secret for the greater good π
7 months ago
0
10
0
reposted by
James Kettle
Gareth Heyes
7 months ago
Is your target leaking CSP violations left and right? Mikhail Khramenkov reveals how to hijack the onsecuritypolicyviolation event to trigger JS in hidden inputs - when unsafe-inline is in play and styles are blocked. Now live on our XSS cheat sheet.
portswigger.net/web-security...
1
9
2
reposted by
James Kettle
Pieter Hiele
7 months ago
Now live on
tools.honoki.net/smuggler.html
Let me know what you think! β¨
add a skeleton here at some point
0
27
13
reposted by
James Kettle
Alex Chapman
7 months ago
There are bad security takes, and then there is
@daniel.haxx.se
attempting to shame
@jameskettle.com
for not "responsibly disclosing" a vulnerability to the curl project that doesn't affect the curl project... and _then_ complaining the details are being kept "secret" :facepalm:
loading . . .
daniel:// stenberg:// (@
[email protected]
)
@
[email protected]
@
[email protected]
@
[email protected]
the website, the naming, the scare, the secrecy
https://mastodon.social/@bagder/114890176383466057
2
8
2
It's easy to bash vulnerabilities with logos but... I couldn't resist, say hello to
http1mustdie.com
:)
8 months ago
2
13
3
reposted by
James Kettle
0x999
8 months ago
New blog post is up: How I leaked the IP addresses of Brave's Tor window and Chrome VPN extension users--plus, a new Popunder technique and connect-src CSP directive bypass. Read more @
0x999.net/blog/leaking...
loading . . .
Leaking IPs in Brave Tor Window & Chrome VPNs + Popunders + CSP Bypass
This writeup details multiple IP leak vulnerabilities I discovered affecting Brave's Tor window and Chrome VPN extensions that allowed a malicious actor to leak the real IP address of any visitor to a...
https://0x999.net/blog/leaking-ips-in-brave-tor-window-chrome-vpns-popunders-csp-bypass
0
5
5
Load more
feeds!
log in