How We Hacked Our Way to Free 4.0s and Took Over a uWaterloo & UofT Grading Tool
How a student account could view other students' submissions, trigger XSS in the grading flow, act as an instructor, and turn a zip upload bug into server takeover.
i'm a computer science and statistics student at the university of toronto, interested in security, software, and open source. right now, i'm contributing to Omnigent , an open-source AI agent orchestration project developed at Databricks, and doing AI research at Harvard. outside of that, i compete in CTFs with UofTCTF and L3ak and write about things i find interesting.
notes from things i've worked on.
Omnigent · Databricks open source
Jun 2026 – present
I contribute to Omnigent, an open-source AI agent framework for building, managing, and sharing agents across Claude Code, Codex, Cursor, MCP, and custom workflows. I added full-stack UI controls to add, edit, or remove session tools and responsibly reported two published runner RCE advisories: Critical (CVSS 9.0) and High (CVSS 8.8).
Harvard University
May 2026 – present
I conduct research on security and safety in AI systems.
Department of Computer Science, University of Toronto
Jan 2026 – Apr 2026
I worked on MarkUs, a grading platform used by U of T and Waterloo that supports 50,000+ students and 250,000+ submissions each year. I found and helped patch five vulnerabilities, including Zip Slip leading to RCE, stored XSS, cross-submission IDOR, and denial of service from YAML aliases and zip bombs.
Ontario Government · Gouvernement de l’Ontario
Sep 2025 – Dec 2025
I developed an anonymous idea-sharing platform for 70,000+ OPS employees across 29 ministries using React, TypeScript, Node/Express, and PostgreSQL. I built AI-powered moderation and automated reporting, with 92% Jest test coverage, WCAG-compliant navigation using semantic HTML, ARIA, and keyboard support, and Lighthouse scores of 100 for accessibility and 95 for performance.
what is a CVE?
CVE stands for Common Vulnerabilities and Exposures. Each CVE is a unique public ID for a disclosed security vulnerability, so researchers and organizations can track the same issue. The number beside it is the CVSS severity score; 10 is the highest.
security issues i've found, responsibly disclosed, and helped patch.