Nepenthes is a tarpit to catch AI web crawlers
https://zadzmo.org/code/nepenthes/Basically a single HTTP Request to ChatGPT API can trigger 5000 HTTP requests by ChatGPT crawler to a website.
The vulnerability is/was thoroughly ignored by OpenAI/Microsoft/BugCrowd but I really wonder what would happen when ChatGPT crawler interacts with this tarpit several times per second. As ChatGPT crawler is using various Azure IP ranges I actually think the tarpit would crash first.
The vulnerability reporting experience with OpenAI / BugCrowd was really horrific. It's always difficult to get attention for DOS/DDOS vulnerabilities and companies always act like they are not a problem. But if their system goes dark and the CEO calls then suddenly they accept it as a security vulnerability.
I spent a week trying to reach OpenAI/Microsoft to get this fixed, but I gave up and just published the writeup.
I don't recommend you to exploit this vulnerability due to legal reasons.
[1] https://github.com/bf/security-advisories/blob/main/2025-01-...
Basically it does HTTP request to fetch HTML `<title/>` tag.
They don't check length of supplied `urls[]` array and also don't check if it contains the same URL over and over again (with minor variations).
It's just bad engineering all around.
I can't even imagine what they're smoking. Maybe it's heir example of AI Agent doing something useful. I've documented this "Prompt Injection" vulnerability [1] but no idea how to exploit it because according to their docs it seems to all be sandboxed (at least they say so).
[1] https://github.com/bf/security-advisories/blob/main/2025-01-...
> "We the people"
I don't know if that's a typo or intentional, but that's such a typical LLM thing to do.
AI: where you make computers bad at the very basics of computing.
I believe what the LLM replies with is in fact correct. From the standpoint of a programmer or any other category of people that are attuned to some kind of formal rigor? Absolutely not. But for any other kind of user who is more interested in the first two concepts instead, this is the thing to do.