Skip to content
View sfwani's full-sized avatar
💭
researching the intersection of AI and security
💭
researching the intersection of AI and security
  • Amazon
  • Dallas, TX
  • 18:45 (UTC -05:00)
  • LinkedIn in/sfwani

Block or report sfwani

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sfwani/README.md

Sanaan Fayaz Wani

I break AI agent frameworks.

Security Engineer at Amazon. I hunt unauthenticated remote code execution in the infrastructure that runs large language models: agent frameworks, inference servers, workflow orchestrators, and the serialization formats they trust.

7 CVEs assigned  ·  9 published advisories  ·  127 reports across 45 projects

Published advisories

Advisory Project CVSS Class
CVE-2026-57516 ray 8.8 High Code injection (CWE-94)
CVE-2026-45675 open-webui 8.1 High Privilege escalation (CWE-269)
CVE-2026-59714 open-webui 7.1 High Missing authorization (CWE-862)
GHSA-pqxw-g93w-hj9x trigger.dev High Improper isolation (CWE-653)
CVE-2026-53577 kestra 6.5 Medium Incorrect authorization (CWE-863)
CVE-2026-63342 hatchet 6.3 Medium Incorrect authorization (CWE-863)
GHSA-59h8-w5q6-mfmp trigger.dev 5.3 Medium Missing authentication (CWE-306)
CVE-2026-73301 @budibase/server 4.3 Medium Missing authorization (CWE-862)
CVE-2026-59715 open-webui 3.1 Low Missing authentication (CWE-306)

Root cause, reproduction, and fix diffs for every one of these: sfwani/advisories

Table regenerates daily from the GitHub Advisory Database.

What I look for

Unauthenticated reachability

An auth gated code execution sink is a bug. The same sink reachable before auth is a 10.0. My highest severity findings are reachability failures rather than novel sinks: CWE-306 and CWE-862 standing in front of machinery that was never meant to be public.

Sandboxes that are not sandboxes

Agent frameworks ship "safe" Python evaluators built on AST allowlists. Format string dunder traversal, decorator abuse, and incomplete node denylists walk straight out of most of them.

Deserialization on exposed ports

pickle, cloudpickle, joblib, and torch.load(weights_only=False) sitting behind an inference or actor pool port that quietly binds 0.0.0.0 (CWE-502).

Request forgery into control planes

My highest volume class (CWE-918): metadata endpoints, internal schedulers, and cluster APIs one redirect away from a user supplied URL.

Competitions

1st place, AI Village, DEF CON 34
2nd place, Adversary Village, DEF CON 34
1st place, Adversary Village, DEF CON 33

Pinned Loading

  1. advisories advisories Public

    Published security advisories I reported. Root cause, reproduction, and fix for each.

    Python