A redirect is a new trust decision
An HTTP client checked the first destination, but not the destinations reached through redirects. The gap allowed authenticated users to bypass private-address restrictions.
Public advisories. Technical case studies. Responsible-disclosure research notes.
A record of contributions to open-source security—with the public source evidence a link away.
10 public advisory notes · 3 program research notes
10 technical case studies · More research is on the way.
An HTTP client checked the first destination, but not the destinations reached through redirects. The gap allowed authenticated users to bypass private-address restrictions.
Langflow’s Smart Transform (LambdaFilter) component sent user instructions to an LLM, then passed the model’s reply to eval() after a format-only check. Because a caller steers what the model returns, an instruction could drive the generated text to a lambda that executed arbitrary code—a prompt-injection path to remote code execution. The eval path was later hardened upstream.
Personal environment operations did not consistently bind the target object to its owner. Knowing another user's environment ID could enable unauthorized access or modification.
In Concrete CMS 9.5.2, the Conversation upload controller checked request integrity, conversation settings, file size and extension before import—but did not apply the user's attachment permission. The message path enforced that permission only after the upload path had already created the file record.
Atlas stateful graph expressions accepted a caller-controlled rolling-window size that reached eager array allocation. The program response placed availability-only resource exhaustion and denial-of-service reports outside eligible scope; that issue class was treated as Informative.
Container lifecycle labels supplied executable commands to the updater. A lower-privileged user could prepare metadata that ran when an administrator initiated an update.
A knowledge-base file-removal operation lacked its ownership filter. An authenticated user who knew the target identifiers could remove another user's files.
An API error redirect used a supplied destination without validating it. The resulting open redirect affected the 3.0 release line before version 3.0.20.
A public chatbot configuration response included sensitive fields. Someone who knew a chatflow identifier could retrieve credentials and internal configuration without authenticating.
A password-reset response could reveal whether an account existed. URL validation ran before the timing protection, exposing an observable difference between account states.
The reorder operation looked up an order without checking its owner. A signed-in customer could place another customer’s purchased items into their own cart.
JSONP responses incorporated a request-supplied callback without validating it. A value intended to name a function could instead alter the JavaScript delivered to a browser.
Uploaded filenames became TAR archive paths without adequate constraints. A recipient extracting the resulting archive could write files outside the intended destination.
Case studies trace the mechanism and upstream correction; advisory notes summarize published records; program research notes distinguish the reporter-supplied record from public upstream source. None represents a customer engagement. Project names indicate research subjects—not customers, partners or endorsements. Linked advisories carry their complete credit records.
Our Hall of Fame links public contributions credited to TraceMint and Deniz Parlak, with affected versions, the upstream fix and a link to the complete credit record.
Explore the contribution index