Skip to content
All work
API & mobile· Lead tester· 2023

Connected device API: auth that was not

A focused API assessment of a connected health device that found an authentication bypass on the pairing flow.

API & mobile

Tools used

  • Burp Suite Pro
  • Frida
  • mitmproxy
  • jadx
  • Python

The problem

A device maker shipped a companion app and cloud API for a connected health monitor. They needed assurance that one customer could never reach another customer's readings.

The approach

I proxied the mobile app, reverse-engineered the pairing and sync endpoints, and tested the authorisation model between device, app and cloud. The pairing flow trusted a device identifier the app sent, with no binding to the authenticated user, which allowed reading another device's data by guessing identifiers.

The outcome

Reported a cross-customer data-access bypass with a proof of concept and a clear fix: bind every device to an authenticated owner server-side and reject unbound requests. The fix shipped in the next firmware and app release, and I verified it.

Context

Scope covered the companion mobile app, the pairing flow and the cloud sync API. Physical device tampering was out of scope.

Key finding

The pairing endpoint accepted a device identifier without binding it to the authenticated account, so a user could sync a device that was not theirs. Health readings are sensitive, so this was treated as critical despite needing a valid account.

Outcome

Server-side ownership binding closed the gap. The engagement also prompted the team to add authorisation tests to their release pipeline.