Skip to content
View sushant-me's full-sized avatar

Block or report sushant-me

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
sushant-me/README.md
Animated waving banner
Typing SVG

Securing LLM pipelines · Architecting offline systems · Building for places where infrastructure doesn't

Followers Total stars AI & Security Email


👨‍💻 About me

  • 🧠 AI security & applied research — prompt-injection defenses for multi-agent LLM pipelines; offline/edge AI systems.
  • 🏗️ Full-stack engineer — architect and ship web + mobile products end-to-end (React/Next.js, Node, Flutter, Python).
  • 🏆 2x Hult Prize 1st Runner-Up (2024 & 2025) · Aspire Leaders Global Finalist (Harvard Business School faculty).
  • ⚔️ Hackathon veteran — CoESS Cybersecurity Hackathon (offensive security) · NEC Ingegium core architect.
  • 🎓 Computer Engineering (final year) @ Nepal Engineering College (NEC).
  • 📍 Kathmandu, Nepal — I build for places where connectivity is unreliable.

🛡️ Security track record (verifiable)

Real bugs, fixed in real projects — each one links to the evidence. Work still in review is marked as such and linked, so the status is checkable rather than asserted.

What Evidence
5 memory-safety bugs found & fixed in Google's S2 geometry library — null-deref, OOB read, two OOMs (16 GiB / 2.4 GiB), heap-buffer-overflow — ASan-verified google/s2geometry#675
Google maintainer LGTM on a security fix to go-github google/go-github#4556
Tool-boundary vulnerability identified in google-gemini/gemini-cli's agent CI — mechanism withheld pending vendor triage found with agentbound
Google engineer reproduced a tool-shadowing bug I reported in the ADK MCP toolset — "I have successfully reproduced the issue you described"; issue and fix PR both under team review issue · PR · Go port
PortSwigger Web Security Academy — 100% of all 273 labs · Expert level · Hall of Fame #237 Web Security Academy
HackingHub — reached #1 on the leaderboard · Security Precursor Path certified hackinghub.io
Google VRP — 4 reports submitted, 2 assigned by triage (private disclosure)
Attack vector contributed to Trail of Bits' agentic-actions-auditor — the unbounded-tool-target class behind CVE-2026-44246, which its A–I vectors did not cover; also corrected its Vector H false-positive note, whose "specific restricted tool patterns are not dangerous" clearing also covered the mutating forms this class is made of trailofbits/skills#311 (in review)
New detection rule contributed to sisaku-security/sisakulintai-action-unbounded-tool-pattern, verified against the three real revisions of the nnU-Net workflow, including the commit titled "hardened issue and PR agents" that left the grant unbounded sisakulint#644 (in review)
Reproducible fixtures + measured detector coverage for the agentic-workflow-injection class published as CVE-2026-44246 (nnU-Net, CVSS 7.2) — three real revisions pinned by commit SHA, scored by three detectors, re-runnable byte-identically from a fresh clone agentic-workflow-injection

Open-source security tooling I built:

  • agentbound — cross-language (Python / TypeScript / JavaScript / Go / Java / GitHub Actions) static detector for AI-agent tool-boundary bugs: reserved-name omission, last-wins tool dicts, fail-open confirmation gates, unauthenticated agent CI dispatch. It found the gemini-cli issue above, and it detects the published CVE-2026-44246 vector. Rule severity tracks what the agent may actually call rather than what the job's permissions block grants — the distinction that separates nnU-Net's two hardening commits, whose permissions blocks are identical. Released v0.1.9, and usable as a GitHub Action in three lines of YAML.
  • mcp-nameguard — checks the tool names an MCP server advertises against the names agent frameworks put on the wire themselves (cross-server tool shadowing). It reports two grades, because they are different facts: GUARDED names the framework refuses at registration, and UNGUARDED names the framework owns and does not defend. The second is the more useful finding — and the Go and Java ADK frameworks currently have no reserved-name guard at all, so every one of their wire names is unguarded. Grew out of a gap I found and reported in google/adk-python#7144 / #7145 — and the guards for the Go/Java ports are in review. Released v0.4.6.
  • trajectorycheck — trajectory-level evaluator for AI agents: scores tool selection, argument correctness, side effects and cross-run determinism, catching the "looks correct but is broken" failures output-level evals miss. Released v0.1.2.
  • agentic-workflow-injection — reproducible vulnerable/fixed fixtures for agentic workflow injection, with detector coverage measured rather than asserted, and a mitigation guide that ranks the controls by whether each depends on the model choosing to comply. Released v1.0.0. Built because there was nothing to test a rule against. The mitigation guide is published at sushant-me.github.io/agentic-workflow-injection. The case study is the one nobody had written down: nnU-Net hardened CVE-2026-44246 in two commits, and the commit titled "hardened issue and PR agents" still left the agent able to comment — so a detector that treats before/after as a binary marks the middle revision fixed. It also shows "fixed in v2.4.1" is not checkable from the tag, which contains no agent workflow at all.

🚀 Featured work

Project What it is Links
Mero-Bazaar-Secured Nepali e-commerce marketplace hardened against 52 real security findings, with a public post-remediation security report Repo
OfflinePay Payment flows that work fully offline, built for Nepal's connectivity reality Repo
Devanagari Vault Client-side AES vault with Devanagari obfuscation Repo
Patho Uber Dynamic ride-pricing for Nepal — fares by distance, vehicle type, and surge Repo
Campus apps NEC campus app + Pokhara University syllabus app used by real students NEC · PU
Portfolio Personal site Repo

🧱 Architecture (Mermaid)

flowchart LR
    A[Next.js Frontend<br/>App Router + NextAuth] -->|REST /api| B[NestJS Backend<br/>JWT + server-side sessions]
    B --> C[(PostgreSQL<br/>Prisma ORM)]
    B --> D[Payment Providers<br/>eSewa · Khalti]
    B --> E[SMS Gateway<br/>Sparrow / Mock]
    B --> F[AI Security Layer<br/>prompt-injection guard]
    A --> G[Flutter Apps<br/>NEC · PU campus]
    F --> B
Loading

🧪 Research

Edge-Native Semantic Firewallcan a 3.8B model on one laptop act as an autonomous agent's action-verification layer?

I ran 1,800 generations on Phi-3-mini (4-bit, held inside a 4.2 GiB VRAM budget, no cloud calls) across 600 policy scenarios, comparing three ways of asking the model to judge a proposed action: free-form text, JSON-constrained output, and JSON with a mandated Chain-of-Thought field order.

The result inverted the assumption. Constraining the output format without requiring the reasoning step produced the least safe evaluator of the three — that arm approved 46.2% of the actions the policy would have blocked or escalated, worse than unconstrained free-form at 17.2%. Requiring the rule attribution first cut it to 23.5% and lifted hard-denial accuracy from 62.5% to 90.8%.

It still approved 6 of 208 irreversible actions, and it was more permissive than free-form on ambiguous cases that should have reached a human. So the paper concludes a model this size can serve as one layer of a defence-in-depth stack and not a sole control — and we withdrew three earlier claims, including a "100%" headline, that our own measurements falsified.

Every number is checkable: the corpus generator, the harness, all 3,000 recorded generations (1,800 across the three conditions, 600 with a declared action vector, 600 replication), and the paper are in the repo. Reproducing a negative result and publishing it is the part I'd point at.

Code · corpus · raw outputs · paper

Also in progress, not yet public: EmbodiedOS (offline robotic control with local LLMs) and GhostSignal (ESP32 Wi-Fi CSI sensing for locating movement under rubble). Kept off the list until there's an artifact worth linking.

💼 Experience

  • 🧠 AI Intern — Eminence Ways (May 2026 – Aug 2026)
  • Software Engineer Intern (Tech Lead) — Avatar Tech Solutions (Dec 2025 – Jun 2026)
  • 🌍 Fundamentals Program Intern — Nobel Learning PBC, USA (Dec 2025 – Aug 2026)
  • 💻 Freelance Full-Stack Developer — Self-employed (Aug 2023 – Present)

🛠️ Tech stack (animated)

Tech stack skills

📊 Profile summary (colorful, live)

Profile details
Languages Most-commit language

📈 Activity & contributions

Streak stats

My contribution snake, generated daily from my own contribution graph

🏅 Achievements & highlights

Quickdraw Pull Shark YOLO Developer Program Member

📬 Get in touch

  • Email: [email protected]
  • Open to internships, research collaborations, security consulting, and hackathon teams — if you work on AI safety, offline systems, or Nepal-focused tech, reach out.

Popular repositories Loading

  1. automating-workflow automating-workflow Public

    Python automation for repetitive workflows.

    Python 2

  2. Portfolio Portfolio Public

    Personal portfolio and blog - TypeScript/Next.js.

    TypeScript 1

  3. Mero-Bazaar-Secured Mero-Bazaar-Secured Public

    Security-hardened Nepali e-commerce marketplace - 52 pre-publication vulnerabilities remediated, with full post-remediation security report.

    TypeScript 1

  4. skills-secure-repository-supply-chain skills-secure-repository-supply-chain Public

    Exercise: Secure your Repository Supply Chain

    C# 1

  5. skills-publish-docker-images skills-publish-docker-images Public

    Exercise: Publish Docker Images

    JavaScript 1

  6. libphonenumber libphonenumber Public

    Forked from google/libphonenumber

    Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers.

    C++ 1