NJVERSE // BOOT
>NJVERSE OS v3.14 — BOOT SEQUENCE INITIATED
>loading kernel modules...
>mounting /sys/identity... OK
>applying user preferences...
>spawning interface threads...
>connecting BKK :: 13.7563°N, 100.5018°E
>SYSTEM READY
~/ / posts / 0x05
POST 0x05//iot2025.12.18 // 14 min read

reverse-engineering my smart toaster (it's worse than you think)

telnet on port 23. a hardcoded admin pw. firmware signed with the literal string 'PASSWORD'. send help.

NJ
Nattapong Jaisabai
Software Engineer · published 2025.12.18

i bought a smart toaster because amazon recommended it and i was, frankly, weak. it has wifi. it has an app. it has, as we shall see, a port 23 listener with a hardcoded admin password baked into the firmware.

this post is a love letter to that toaster.

step 0: assume the worst

before plugging it in i put it on its own vlan. before it joined the network i set tcpdump rolling. before i installed the app i made a throwaway google account. paranoia is just experience that's been kept warm.

step 1: nmap doesn't lie

$ nmap -sV -p- 192.168.99.42
PORT     STATE  SERVICE   VERSION
23/tcp   open   telnet    BusyBox telnetd
80/tcp   open   http      lighttpd 1.4.13 (2007)
8888/tcp open   http      Custom mDNS controller
9100/tcp open   ???       ???

telnet on port 23. on a toaster. in 2026. the firmware was signed, by the way, with the literal string 'PASSWORD'. i wish i was making this up.

what i did with my findings

filed a CVE. emailed the vendor. they replied in three weeks asking if i could call their developer 'in china, who built it'. i flashed open-source firmware and now the toaster runs prometheus. it exports 14 metrics. one of them is 'crumb_density'.

ten out of ten purchase. would be horrified again.

EOF · 0x05 · last edit 2025.12.18// thanks for reading.
← PREVIOUS
i replaced my entire CI with 80 lines of bash. it slaps.
2025.11.05 · //tools · 7 min
NEXT →
vim, 10 years in: still no idea how to quit
2026.01.07 · //life · 4 min
← back to all posts