Utsav Agarwal

Computer science at the University of Michigan

All projects

Security, machine learning, and real-time systems — the fuller list. A few have their own write-ups; the rest link to the code.

  • Oct 2026

    No Badge Actors

    A hardware security key for payments, built on DEF CON badges. It checks who you're paying, that they're standing in front of you, and what you're actually signing, before a button press releases the signature.

    Won Best Use of Solana · Won the Judged by an LLM track · MHacks 2026

    Solana, Ed25519, ESP32 / ESP-NOW, Node.js, React, TimescaleDB, Capital One Nessie

    Read the write-up →
  • MQTT tenant isolation

    Demonstrated cross-tenant message disclosure on a multi-tenant MQTT broker with authentication but no authorization, then contained it with a default-deny Mosquitto ACL — the same attack, recorded before and after.

    Cross-tenant message disclosure · Fixed with a one-line ACL

    Mosquitto, Docker, security

    Read the write-up →
  • Metadata Mirage

    Chained a web-app SSRF into AWS instance-credential theft and a single-API-call privilege escalation to administrator, then severed the whole chain with one instance-metadata flag — enforcing IMDSv2. Reproducible end to end with Terraform.

    SSRF to AWS administrator · Killed by one IMDSv2 flag

    AWS, IAM, Terraform, cloud security

    Read the write-up →
  • Sept 2025 — Apr 2026

    MRacing dashboard

    Reverse-engineered a Python driver dashboard and rebuilt it in C++, pulling live telemetry off the vehicle CAN bus for a Formula SAE team.

    ~3× faster · 40% less memory · 60+ FPS on a Raspberry Pi

    C++, Raspberry Pi, CAN bus

  • dashcam-perception

    Fine-tuned YOLOv8 on BDD100K so a dashcam model could detect the classes COCO never covers, and built the evaluation framework to prove it worked.

    +49.7% mAP@0.5 · riders and traffic signs learned from zero · 10 classes

    Python, PyTorch, YOLOv8

    Read the write-up →
  • Sept — Dec 2025

    PUSHbulance

    Led a team of five building an autonomous robot that navigated multiple track layouts using OpenCV and real-time control off an ESP32 camera feed.

    3 navigation methods · ~60 FPS vision loop

    Python, OpenCV, ESP32, Arduino