
Security research on a consumer IP camera built on the Fullhan FH8626V100 SoC (model AJL30PG0803).
Security research on a consumer IP camera built on the Fullhan FH8626V100 SoC (model AJL30PG0803), resulting in six assigned CVEs covering unauthenticated API access, plaintext credential disclosure, and full unauthenticated device compromise via OS command injection.
Full writeup: Breaking Into My Own IP Camera
| Field | Value |
|---|---|
| SoC / Platform | FH8626V100 (Fullhan Microelectronics, FH86xx family) |
| Device Model | AJL30PG0803 |
| Firmware Version | v201222.1007 |
| Architecture | ARM, embedded Linux |
| Camera Sensor | JX-F37P (2MP, 1080p@30fps, MIPI) |
| Companion App | CareCam Pro |
| Web API | PSIA-based endpoints (/PSIA/*) |
| Key Services | HTTP (80), HTTPS (443), Telnet (23), RTSP (8554), custom control port (1300), snapshot service (6688) |
This firmware/SoC combination is reused across many differently branded consumer IP cameras, so the affected surface is broader than a single product listing.
/PSIA/Security/AAA/users unauthenticated to retrieve plaintext admin credentials (CVE-2026-51406), or skip straight to step 2.<SYSTEM>...</SYSTEM> payload to TCP/1300 to execute a command that resets the root account password (CVE-2026-51402)./app/userdata/ifcfg.wlan0 for Wi-Fi credentials and/or pivot further into the local network (CVE-2026-51407).
Each step individually requires no authentication except the final Telnet login, which is trivially satisfied by the attacker's own password reset in step 2, meaning the full chain from network access to root shell requires no valid credentials at any point..
├── README.md
├── advisory/
│ └── fullhan-ipcam-advisory.txt # Exploit-DB style advisory + PoC
├── poc/
│ ├── command_payloads.txt # Fun abuse commands (play audio, reboot camera)
│ ├── data_extraction.py # Unauthenticated read PoC (users, device info, snapshot)
│ └── full_chain.py # RCE -> root password reset -> telnet shell chain
├── metasploit/
│ ├── command_payloads.txt # Fun abuse commands (play audio, reboot camera)
│ ├── data_extraction.py # Unauthenticated read PoC (users, device info, snapshot)
│ └── full_chain.py # RCE -> root password reset -> telnet shell chain
An attacker on the local network or adjacent segment (or with internet exposure, if the device is port-forwarded) can obtain full root access to the device, view the live camera feed, exfiltrate the victim's Wi-Fi credentials, and use the compromised device as a pivot point into the victim's internal network — all without needing any valid credentials.
| Date | Event |
|---|---|
| 31-03-2026 | Vulnerabilities discovered |
| 01-04-2026 | Vendor contacted |
| NONE | Vendor response |
This research was conducted against a device owned by the author. The code in this repository is provided for defensive research, detection engineering, and authorized testing only. Do not use it against devices you do not own or lack explicit authorization to test.
Discovered and reported by Amir Aliu
Free to use for personal research, education, and authorized security testing. Commercial use, resale, or redistribution as part of a paid product/service is not permitted without written permission.
| CVE ID | Finding | CVSS 3.1 | CWE |
|---|
| CVE-2026-51402 | Unauthenticated blind OS command injection via custom <SYSTEM> protocol on TCP/1300 | 8.8 | CWE-78 |
| CVE-2026-51403 | Unauthenticated read/write access to PSIA API endpoints | 8.8 | CWE-306, CWE-284 |
| CVE-2026-51404 | Unauthenticated live snapshot disclosure via TCP/6688 | 6.5 | CWE-200 |
| CVE-2026-51405 | BusyBox Telnet enabled by default, exposing root shell once credentials are obtained | 8.8 | CWE-287 |
| CVE-2026-51406 | Plaintext credential disclosure via /PSIA/Security/AAA/users | 6.5 | CWE-522 |
| CVE-2026-51407 | Plaintext Wi-Fi credentials stored in /app/userdata/ifcfg.wlan0 | 7.4 | CWE-319 |
| 16-07-2026 |
| CVEs reserved |
| 30-06-2026 | Public disclosure (blog post) |