Jorian

@jorianwoltjer.com

Normalize being weird.

Playing L3akCTF this weekend with my teammates in Superflat was a blast! The challenge that stood out to me was "Squid", showcasing a werkzeug Race Condition with file descriptor symlinks that I'm sure can be applied elsewhere. Check out the writeup below: jorianwoltjer.com/blog/p/ctf/l...

L3akCTF 2026 - Squid | Jorian Woltjer

A complex server-side web challenge showing off some parser differentials and a new technique. It was followed by a really interesting race condition technique involving file descriptors to read envir...

jorianwoltjer.com

We took a look at popular open-source forum platform NodeBB! This resulted in interesting vulnerabilities involving the ActivityPub protocol My favorite is *translation templates* causing XSS everywhere, requiring a large rewrite of the codebase in v4.14.0 www.aikido.dev/blog/eight-h...

Finding eight high-severity vulnerabilities in NodeBB in six hours

Eight high-severity NodeBB vulnerabilities, found by our AI Pentest in six hours. Full technical breakdown of the XSS chains, auth bypasses, and post hijacking.

aikido.dev

Simple IDOR turned into an interesting question of "how do we find the IDs?" The answer: Continuously probe ObjectId()'s from MongoDB and search through the predictable gaps! Check out the full explanation & implementation below: www.aikido.dev/blog/predict...

Predicting MongoDB ObjectId() continuously in Rocket.Chat

Aikido's AI pentester found this file-access flaw in Rocket.Chat. A closer look at MongoDB's ObjectId() showed the weak randomness that makes it exploitable.

aikido.dev

It's friday so you know what that means, time for a critical vulnerability! Okay... we announced it 4 weeks ago already to be fair, but now we can talk about the technical parts 🙌 Read how authentication could be bypassed on every online phpBB instance: www.aikido.dev/blog/authent...

Authentication Bypass in the default configuration phpBB

Our AI pentest agents found a critical phpBB auth bypass (CVE-2026-48611): one unauthenticated request logs you into any account. See the exploit and the fix.

aikido.dev

Now that everybody's had a chance to solve it, here's a timelapse of my playtesting run of the JavaScript Crossword! SPOILER WARNING: Please try it yourself first in the post below, it's very satisfying to solve, I don't want you to miss out on that 😄 (1 second = 2 minutes)

I won't keep you in mystery any longer, here's how I found an XSS vulnerability *in* Shazzer! The chain involved some interesting browser techniques no sane developer could foresee. Check out the details below: jorianwoltjer.com/blog/p/stori... (and thanks @garethheyes.co.uk for making Shazzer!)

Finding XSS on Shazzer (literally) | Jorian Woltjer

How I found an XSS in Shazzer, a tool for discovering and sharing browser quirks through fuzzing. Not *using*, but *in* Shazzer. We'll explore some useful techniques with Blob URLs to unsandbox malici...

jorianwoltjer.com

Gareth Heyes@garethheyes.co.uk · 2mo ago

Just want to say @jorianwoltjer.com is awesome. You'll find out why soon...

Cool exploit with @0x999.net: He found that \x7F breaks Chrome's "Copy as cURL (cmd)" command parsing in Windows Console Host. In combination with a ", it allowed you to add any arguments to curl. With -o writing files is easy, but we need the username for the startup path... (1/2)

Windows shell:startup folder wrote shell.bat from conhost.exe opening calculator. Username in path highlighted

XSS on a password manager, about the scariest impact you can have... github.com/aliasvault/a... Luckily it was fixed super quick! Here's a simple script you can use to send raw HTML in emails. I think a lot more clients will benifit from sanitizer testing. gist.github.com/JorianWoltje...

Cross-Site Scripting (XSS) via Email HTML Rendering

## Impact A stored cross-site scripting (XSS) vulnerability was identified in the email rendering feature of AliasVault Web Client versions 0.25.3 and lower. When viewing received emails on an ali...

github.com

Really interesting technique from a local CTF. In gunicorn with --proxy-protocol --proxy-allow-from='*', the "Proxy Protocol" (github.com/haproxy/hapr...) allows you to spoof the source IP with a PROXY prefix like this! I feel like it might be useful as impact in Request Tunneling👀

PROXY TCP4 127.0.0.1 1.2.3.4 1337 80
GET /ip HTTP/1.1
Host: 1.2.3.4:80

------------------------------------
HTTP/1.1 200 OK
Server: gunicorn

Your IP: 127.0.0.1

Follow your rabbit holes is the takeaway from my latest CTF writeup. I found several interesting techniques that can help tricky situations, such as using the Connection Pool to make Client-Side Race Conditions easier! Read the whole thing on my blog: jorianwoltjer.com/blog/p/ctf/o...

openECSC 2025 - kittychat-secure | Jorian Woltjer

Overcomplicating a hard client-side web challenge involving complex CSP script gadgets. Exploit Math.random() predictability, and learn how to use the Connection Pool to make Race Conditions easier.

jorianwoltjer.com