Kaya Emre Arıkan
Security Research & Responsible Disclosure
I find and responsibly disclose vulnerabilities in open-source software — from web frameworks to CLI tools to language runtimes. This is where I write up the findings that vendors have already made public.
Recent writeups
-
Unauthenticated SQL Injection in django-sql-explorer's AI Assistant Endpoint Criticaldjango-sql-explorer's AI Assistant endpoints had no permission check and interpolated attacker-supplied table names directly into SQL, giving unauthenticated users arbitrary SQL execution.
-
Accept-Language CPU Exhaustion: The Gap Left by nginx-ignition's Previous DoS Fix HighA previous fix for an Accept-Language DoS only bounded separator characters, not the number of language tags — leaving an unauthenticated 51x CPU amplification attack open.
-
encodeGitLabPath Never Blocks ../: Path Traversal to Arbitrary GitLab API Endpoints HighA patch meant to fix a path-traversal bug in gitlab-mcp's download tools doesn't actually block '../' segments, letting any caller redirect requests to arbitrary GitLab API endpoints under the operator's token.
-
django-gcp's Cloud Tasks and Events Endpoints Have No Authentication By Default Highdjango-gcp wires three routes for Cloud Tasks and PubSub events with no authentication at all, so anyone who can reach the URL can run application tasks and inject events with arbitrary arguments.
-
Predis's write() Re-Parses Its Buffer on \r\n, Enabling Redis Command Injection CriticalA public, documented Predis method re-derives RESP command boundaries by splitting on literal \r\n bytes instead of respecting length-prefixed arguments, letting attacker-controlled data smuggle an entirely separate command onto a cluster or replication node.