A connected-device maker needed an attacker’s view of its lock before launch, both for its own release and because a customer required independent testing. Over a multi-week engagement, ioSENTRIX tested the device from the circuit board to the update channel.
Engagement details
Client
Connected-device maker
Product
Connected lock with card access and a cloud portal
Boards and enclosure, firmware, card reader, wired interfaces, OTA updates
Access
Firmware source and production binaries; no debug build
Engagement
A multi-week engagement; fixes rolled out within 30 days
Verified
Every fix retested by ioSENTRIX
Tested by
ioSENTRIX hardware and firmware testers
Our approach
How did ioSENTRIX approach it?
These were logic flaws on a failure path, not known vulnerabilities, so an automated scanner had nothing to match them against. Finding them took reading the firmware source against the production binary and testing the hardware by hand.
Also found: a stack overflow on long card UIDs, UID cloning on legacy cards, a flash-read overflow, build paths in the binary and missing NULL checks in update handlers.
What we found
What did ioSENTRIX find?
Two ways to open the lock without a trace, both closed and verified.
HighFinding 1
A copied card ID was enough to open the door
The firmware’s check for the expected card application used a bitwise OR, so every card passed it. When the MIFARE DESFire cryptographic step then failed, the firmware fell back to the card’s UID alone, an identifier read before any key is used.
Business impact. Card entry, the product’s core promise, could be defeated with a copied identifier instead of a stolen card.
MediumFinding 2
Opening the enclosure gave a second, silent way in
There was no tamper detection. Inside, our testers found ways to drive the lock open directly, bypassing its processor, so no unlock event, log entry or alert reached the portal.
Business impact. A break-in by this route would leave no trace, for the customer or the maker.
The physical bypass methods are deliberately withheld from this publication.
Two separate paths to an unlocked door, neither of them logged
Path 1 · copied card ID · High
1Card presentedenrolled UID copied
2Check passesbitwise OR succeeds
3UID-only fallbackcrypto fails, UID wins
Path 2 · physical access · Medium
1Enclosure openedno tamper alert
2Lock driven openmethod withheld
3Processor skippedlogging never runs
Outcome: Door opens (no event, no log, no alert)
The impact
What changed as a result?
We found that a copied card ID could open the door, and that anyone inside the enclosure could open it with nothing logged. The client rolled out fixes for every finding within 30 days, and ioSENTRIX retested each one.
10+
findings, 2 of them High severity
30
days for the client to roll out every fix
100%
of fixes verified by ioSENTRIX retest
How many findings, and how severe?
10+ findings in total, including 2 High.
High 2
Medium
Low
Info
What changed after the test?
Card authentication. The application check compares correctly; the UID-only fallback is gone.
Physical bypass. The lock detects movement it did not command; tamper sensors alert the portal.
Memory safety. UIDs and flash reads are length-checked; update handlers check for NULL.
Release hygiene. Build paths no longer ship in the firmware binary.
✓Verification: All fixes rolled out within 30 days · verified by ioSENTRIX retest.
Key insight
The encryption was sound. The way in was what the lock did when encryption failed.
Lessons
Lessons for device makers
01
Test the failure path
The encryption was sound. The fallback was the way in.
02
A UID is not a credential
It identifies a card. It does not prove the card is genuine.
03
Expect the enclosure to open
Limit exposed interfaces and watch telemetry (ETSI EN 303 645, 5.6-3 and 5.10-1).
Severity rated on a five-level likelihood and impact matrix based on NIST SP 800-30 Rev. 1.
ETSI EN 303 645 V2.1.1 (2020-06), cited as alignment guidance, not a compliance claim.
Next step
Planning a device release? See a sample IoT test report or book a strategy session on your hardware, firmware and cloud.
Details in this case study are anonymised and generalised. Methods that could harm other products are withheld.
FAQ
Frequently asked questions
What did ioSENTRIX test in this case study?
A connected-device maker needed an attacker’s view of its lock before launch, both for its own release and because a customer required independent testing. Over a multi-week engagement, ioSENTRIX tested the device from the circuit board to the update channel.
What was the most serious issue?
A copied card ID was enough to open the door. Card entry, the product’s core promise, could be defeated with a copied identifier instead of a stolen card.
How many findings were there, and how severe?
10+ findings in total, including 2 High.
Were the fixes verified?
All fixes rolled out within 30 days · verified by ioSENTRIX retest.
Which ioSENTRIX service does this case study cover?
IoT and embedded device penetration testing, delivered by the ioSENTRIX hardware and firmware testers.
How to get started
Ready to strengthen your security? Fill out our quick form, and a cybersecurity expert will reach out to discuss your needs and next steps.