mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-10-15 03:02:49 +03:00
Compare commits
merge into: administrator/frigate:master
administrator/frigate:dev
administrator/frigate:master
administrator/frigate:security_patches
administrator/frigate:tweaks
administrator/frigate:dependabot/npm_and_yarn/web/web-minor-patch-0ca2a98318
administrator/frigate:dependabot/pip/docker/main/openvino-eq-2026.4.star
administrator/frigate:dependabot/pip/docker/main/scikit-build-eq-0.19.star
administrator/frigate:dependabot/npm_and_yarn/web/multi-ca09107ad9
administrator/frigate:analytics
administrator/frigate:classification-allowed
administrator/frigate:test-ws-threading
administrator/frigate:plus_docs_update
administrator/frigate:port_go2rtc_check
administrator/frigate:update-recs
administrator/frigate:remove_credit_term
administrator/frigate:pass_filter
administrator/frigate:release_workflow
administrator/frigate:update_calibration
administrator/frigate:handle_invalid_labels
administrator/frigate:gh-pages
administrator/frigate:odroid
administrator/frigate:person_filtering
administrator/frigate:v0.18.1
administrator/frigate:v0.18.0
administrator/frigate:v0.18.0-rc2
administrator/frigate:v0.18.0-rc1
administrator/frigate:v0.18.0-beta3
administrator/frigate:v0.18.0-beta2
administrator/frigate:v0.18.0-beta1
administrator/frigate:v0.17.2
administrator/frigate:v0.17.1
administrator/frigate:v0.17.0
administrator/frigate:v0.17.0-rc3
administrator/frigate:v0.17.0-rc2
administrator/frigate:v0.17.0-rc1
administrator/frigate:v0.16.4
administrator/frigate:v0.17.0-beta2
administrator/frigate:v0.17.0-beta1
administrator/frigate:v0.16.3
administrator/frigate:v0.16.2
administrator/frigate:v0.16.1
administrator/frigate:v0.16.0
administrator/frigate:v0.16.0-rc4
administrator/frigate:v0.16.0-rc3
administrator/frigate:v0.16.0-rc2
administrator/frigate:v0.16.0-rc1
administrator/frigate:v0.16.0-beta4
administrator/frigate:v0.15.2
administrator/frigate:v0.16.0-beta3
administrator/frigate:v0.16.0-beta2
administrator/frigate:v0.16.0-beta1
administrator/frigate:v0.15.1
administrator/frigate:v0.15.0-rc2
administrator/frigate:v0.15.0
administrator/frigate:v0.15.0-rc1
administrator/frigate:v0.15.0-beta7
administrator/frigate:v0.15.0-beta6
administrator/frigate:v0.15.0-beta5
administrator/frigate:v0.15.0-beta4
administrator/frigate:v0.15.0-beta3
administrator/frigate:v0.15.0-beta2
administrator/frigate:v0.15.0-beta1
administrator/frigate:v0.14.1
administrator/frigate:v0.14.0-rc2
administrator/frigate:v0.14.0
administrator/frigate:v0.14.0-rc1
administrator/frigate:v0.14.0-beta4
administrator/frigate:v0.14.0-beta3
administrator/frigate:v0.14.0-beta2
administrator/frigate:v0.14.0-beta1
administrator/frigate:v0.13.2
administrator/frigate:v0.13.1
administrator/frigate:v0.13.0
administrator/frigate:v0.13.0-rc1
administrator/frigate:v0.13.0-beta7
administrator/frigate:v0.13.0-beta6
administrator/frigate:v0.13.0-beta5
administrator/frigate:v0.13.0-beta4
administrator/frigate:v0.13.0-beta3
administrator/frigate:v0.13.0-beta2
administrator/frigate:v0.13.0-beta1
administrator/frigate:v0.12.1
administrator/frigate:v0.12.0
administrator/frigate:v0.12.0-rc2
administrator/frigate:v0.12.0-rc1
administrator/frigate:v0.12.0-beta10
administrator/frigate:v0.12.0-beta9
administrator/frigate:v0.12.0-beta8
administrator/frigate:v0.12.0-beta7
administrator/frigate:v0.12.0-beta6
administrator/frigate:v0.12.0-beta5
administrator/frigate:v0.12.0-beta4
administrator/frigate:v0.12.0-beta3
administrator/frigate:v0.12.0-beta2
administrator/frigate:v0.12.0-beta1
administrator/frigate:v0.11.1
administrator/frigate:v0.11.0
administrator/frigate:v0.11.0-rc3
administrator/frigate:v0.11.0-rc2
administrator/frigate:v0.11.0-rc1
administrator/frigate:v0.11.0-beta7
administrator/frigate:v0.11.0-beta6
administrator/frigate:v0.11.0-beta5
administrator/frigate:v0.11.0-beta3
administrator/frigate:v0.11.0-beta4
administrator/frigate:v0.11.0-beta2
administrator/frigate:v0.10.1
administrator/frigate:v0.10.0
administrator/frigate:v0.10.0-rc1
administrator/frigate:v0.10.0-beta12
administrator/frigate:v0.10.0-beta11
administrator/frigate:v0.10.0-beta10
administrator/frigate:v0.10.0-beta9
administrator/frigate:v0.10.0-beta8
administrator/frigate:v0.10.0-beta7
administrator/frigate:v0.10.0-beta6
administrator/frigate:v0.10.0-beta5
administrator/frigate:v0.10.0-beta4
administrator/frigate:v0.10.0-beta3
administrator/frigate:v0.10.0-beta2
administrator/frigate:v0.10.0-beta1
administrator/frigate:v0.9.4
administrator/frigate:v0.9.3
administrator/frigate:v0.9.2
administrator/frigate:v0.9.1
administrator/frigate:v0.9.0
administrator/frigate:v0.9.0-rc6
administrator/frigate:v0.9.0-rc5
administrator/frigate:v0.9.0-rc4
administrator/frigate:v0.9.0-rc3
administrator/frigate:v0.9.0-rc2
administrator/frigate:v0.9.0-rc1
administrator/frigate:v0.9.0-beta2
administrator/frigate:v0.9.0-beta1
administrator/frigate:v0.8.4
administrator/frigate:v0.8.3
administrator/frigate:v0.8.2
administrator/frigate:v0.8.1
administrator/frigate:v0.8.0
administrator/frigate:v0.8.0-rc6
administrator/frigate:v0.8.0-rc5
administrator/frigate:v0.8.0-rc4
administrator/frigate:v0.8.0-rc3
administrator/frigate:v0.8.0-rc2
administrator/frigate:v0.8.0-rc1
administrator/frigate:v0.8.0-beta3
administrator/frigate:v0.8.0-beta2
administrator/frigate:v0.8.0-beta1
administrator/frigate:v0.7.3
administrator/frigate:v0.7.2
administrator/frigate:v0.7.1
administrator/frigate:v0.7.0
administrator/frigate:v0.7.0-rc3
administrator/frigate:v0.7.0-rc2
administrator/frigate:v0.7.0-rc1
administrator/frigate:v0.6.1
administrator/frigate:v0.6.0
administrator/frigate:v0.6.0-rc3
administrator/frigate:v0.6.0-rc2
administrator/frigate:v0.6.0-rc1
administrator/frigate:v0.5.2
administrator/frigate:v0.5.1
administrator/frigate:v0.5.1-rc4
administrator/frigate:v0.5.1-rc3
administrator/frigate:v0.5.1-rc2
administrator/frigate:v0.5.1-rc1
administrator/frigate:v0.5.0
administrator/frigate:v0.5.0-rc7
administrator/frigate:v0.5.0-rc6
administrator/frigate:v0.5.0-rc5
administrator/frigate:v0.5.0-rc3
administrator/frigate:v0.5.0-rc1
administrator/frigate:v0.5.0-rc2
administrator/frigate:v0.5.0-rc4
administrator/frigate:v0.4.0-beta
administrator/frigate:v0.3.0
administrator/frigate:v0.3.0-beta
administrator/frigate:v0.2.2
administrator/frigate:v0.2.2-beta
administrator/frigate:v0.2.1
administrator/frigate:v0.2.0
administrator/frigate:v0.2.0-beta
administrator/frigate:0.1.2
administrator/frigate:v0.1.1
administrator/frigate:v0.1.0
administrator/frigate:v0.0.1
..
pull from: administrator/frigate:security_patches
administrator/frigate:dev
administrator/frigate:master
administrator/frigate:security_patches
administrator/frigate:tweaks
administrator/frigate:dependabot/npm_and_yarn/web/web-minor-patch-0ca2a98318
administrator/frigate:dependabot/pip/docker/main/openvino-eq-2026.4.star
administrator/frigate:dependabot/pip/docker/main/scikit-build-eq-0.19.star
administrator/frigate:dependabot/npm_and_yarn/web/multi-ca09107ad9
administrator/frigate:analytics
administrator/frigate:classification-allowed
administrator/frigate:test-ws-threading
administrator/frigate:plus_docs_update
administrator/frigate:port_go2rtc_check
administrator/frigate:update-recs
administrator/frigate:remove_credit_term
administrator/frigate:pass_filter
administrator/frigate:release_workflow
administrator/frigate:update_calibration
administrator/frigate:handle_invalid_labels
administrator/frigate:gh-pages
administrator/frigate:odroid
administrator/frigate:person_filtering
administrator/frigate:v0.18.1
administrator/frigate:v0.18.0
administrator/frigate:v0.18.0-rc2
administrator/frigate:v0.18.0-rc1
administrator/frigate:v0.18.0-beta3
administrator/frigate:v0.18.0-beta2
administrator/frigate:v0.18.0-beta1
administrator/frigate:v0.17.2
administrator/frigate:v0.17.1
administrator/frigate:v0.17.0
administrator/frigate:v0.17.0-rc3
administrator/frigate:v0.17.0-rc2
administrator/frigate:v0.17.0-rc1
administrator/frigate:v0.16.4
administrator/frigate:v0.17.0-beta2
administrator/frigate:v0.17.0-beta1
administrator/frigate:v0.16.3
administrator/frigate:v0.16.2
administrator/frigate:v0.16.1
administrator/frigate:v0.16.0
administrator/frigate:v0.16.0-rc4
administrator/frigate:v0.16.0-rc3
administrator/frigate:v0.16.0-rc2
administrator/frigate:v0.16.0-rc1
administrator/frigate:v0.16.0-beta4
administrator/frigate:v0.15.2
administrator/frigate:v0.16.0-beta3
administrator/frigate:v0.16.0-beta2
administrator/frigate:v0.16.0-beta1
administrator/frigate:v0.15.1
administrator/frigate:v0.15.0-rc2
administrator/frigate:v0.15.0
administrator/frigate:v0.15.0-rc1
administrator/frigate:v0.15.0-beta7
administrator/frigate:v0.15.0-beta6
administrator/frigate:v0.15.0-beta5
administrator/frigate:v0.15.0-beta4
administrator/frigate:v0.15.0-beta3
administrator/frigate:v0.15.0-beta2
administrator/frigate:v0.15.0-beta1
administrator/frigate:v0.14.1
administrator/frigate:v0.14.0-rc2
administrator/frigate:v0.14.0
administrator/frigate:v0.14.0-rc1
administrator/frigate:v0.14.0-beta4
administrator/frigate:v0.14.0-beta3
administrator/frigate:v0.14.0-beta2
administrator/frigate:v0.14.0-beta1
administrator/frigate:v0.13.2
administrator/frigate:v0.13.1
administrator/frigate:v0.13.0
administrator/frigate:v0.13.0-rc1
administrator/frigate:v0.13.0-beta7
administrator/frigate:v0.13.0-beta6
administrator/frigate:v0.13.0-beta5
administrator/frigate:v0.13.0-beta4
administrator/frigate:v0.13.0-beta3
administrator/frigate:v0.13.0-beta2
administrator/frigate:v0.13.0-beta1
administrator/frigate:v0.12.1
administrator/frigate:v0.12.0
administrator/frigate:v0.12.0-rc2
administrator/frigate:v0.12.0-rc1
administrator/frigate:v0.12.0-beta10
administrator/frigate:v0.12.0-beta9
administrator/frigate:v0.12.0-beta8
administrator/frigate:v0.12.0-beta7
administrator/frigate:v0.12.0-beta6
administrator/frigate:v0.12.0-beta5
administrator/frigate:v0.12.0-beta4
administrator/frigate:v0.12.0-beta3
administrator/frigate:v0.12.0-beta2
administrator/frigate:v0.12.0-beta1
administrator/frigate:v0.11.1
administrator/frigate:v0.11.0
administrator/frigate:v0.11.0-rc3
administrator/frigate:v0.11.0-rc2
administrator/frigate:v0.11.0-rc1
administrator/frigate:v0.11.0-beta7
administrator/frigate:v0.11.0-beta6
administrator/frigate:v0.11.0-beta5
administrator/frigate:v0.11.0-beta3
administrator/frigate:v0.11.0-beta4
administrator/frigate:v0.11.0-beta2
administrator/frigate:v0.10.1
administrator/frigate:v0.10.0
administrator/frigate:v0.10.0-rc1
administrator/frigate:v0.10.0-beta12
administrator/frigate:v0.10.0-beta11
administrator/frigate:v0.10.0-beta10
administrator/frigate:v0.10.0-beta9
administrator/frigate:v0.10.0-beta8
administrator/frigate:v0.10.0-beta7
administrator/frigate:v0.10.0-beta6
administrator/frigate:v0.10.0-beta5
administrator/frigate:v0.10.0-beta4
administrator/frigate:v0.10.0-beta3
administrator/frigate:v0.10.0-beta2
administrator/frigate:v0.10.0-beta1
administrator/frigate:v0.9.4
administrator/frigate:v0.9.3
administrator/frigate:v0.9.2
administrator/frigate:v0.9.1
administrator/frigate:v0.9.0
administrator/frigate:v0.9.0-rc6
administrator/frigate:v0.9.0-rc5
administrator/frigate:v0.9.0-rc4
administrator/frigate:v0.9.0-rc3
administrator/frigate:v0.9.0-rc2
administrator/frigate:v0.9.0-rc1
administrator/frigate:v0.9.0-beta2
administrator/frigate:v0.9.0-beta1
administrator/frigate:v0.8.4
administrator/frigate:v0.8.3
administrator/frigate:v0.8.2
administrator/frigate:v0.8.1
administrator/frigate:v0.8.0
administrator/frigate:v0.8.0-rc6
administrator/frigate:v0.8.0-rc5
administrator/frigate:v0.8.0-rc4
administrator/frigate:v0.8.0-rc3
administrator/frigate:v0.8.0-rc2
administrator/frigate:v0.8.0-rc1
administrator/frigate:v0.8.0-beta3
administrator/frigate:v0.8.0-beta2
administrator/frigate:v0.8.0-beta1
administrator/frigate:v0.7.3
administrator/frigate:v0.7.2
administrator/frigate:v0.7.1
administrator/frigate:v0.7.0
administrator/frigate:v0.7.0-rc3
administrator/frigate:v0.7.0-rc2
administrator/frigate:v0.7.0-rc1
administrator/frigate:v0.6.1
administrator/frigate:v0.6.0
administrator/frigate:v0.6.0-rc3
administrator/frigate:v0.6.0-rc2
administrator/frigate:v0.6.0-rc1
administrator/frigate:v0.5.2
administrator/frigate:v0.5.1
administrator/frigate:v0.5.1-rc4
administrator/frigate:v0.5.1-rc3
administrator/frigate:v0.5.1-rc2
administrator/frigate:v0.5.1-rc1
administrator/frigate:v0.5.0
administrator/frigate:v0.5.0-rc7
administrator/frigate:v0.5.0-rc6
administrator/frigate:v0.5.0-rc5
administrator/frigate:v0.5.0-rc3
administrator/frigate:v0.5.0-rc1
administrator/frigate:v0.5.0-rc2
administrator/frigate:v0.5.0-rc4
administrator/frigate:v0.4.0-beta
administrator/frigate:v0.3.0
administrator/frigate:v0.3.0-beta
administrator/frigate:v0.2.2
administrator/frigate:v0.2.2-beta
administrator/frigate:v0.2.1
administrator/frigate:v0.2.0
administrator/frigate:v0.2.0-beta
administrator/frigate:0.1.2
administrator/frigate:v0.1.1
administrator/frigate:v0.1.0
administrator/frigate:v0.0.1
12
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d43a1d8565 |
Explain why a go2rtc stream change was rejected
A stream source with an undefined or malformed {FRIGATE_*} placeholder
was reported as a restricted source, which reads like a security block
when the user made a typo. The config API now reports unknown variables
and invalid placeholders separately from restricted sources.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
||
|
|
c43b8f58f9 |
Revert the go2rtc startup script to str.format substitution
Restores create_config.py to its state on master. The config API check
rejects any stream source whose {FRIGATE_*} placeholders it cannot
resolve with substitute_frigate_vars, and for every source it accepts,
str.format() at startup either produces the same string or fails and
stops go2rtc startup. Changing the startup script is therefore not
needed for the fix, and leaving it alone avoids a conflict with dev,
which already moved this script to the new env helpers.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
||
|
|
3dad2605db |
Restore the environment after go2rtc exec override tests
Tests that removed or set GO2RTC_ALLOW_ARBITRARY_EXEC did not restore a value that was already present, so later tests could run with a changed security setting. They now use patch.dict on os.environ. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
20962bb12d |
Accept codec sample rates in ffmpeg: go2rtc sources
The ffmpeg: parameter allowlist only accepted plain names for video, audio and hardware, so the documented HomeKit source with #audio=opus/16000 was rejected by PUT /go2rtc/streams, config/save and config/set. Names may now carry a numeric /rate suffix. A rate without a name is still rejected. All ffmpeg: sources in the docs pass the check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
ac0f39268c |
Resolve go2rtc stream placeholders the same way everywhere
The go2rtc startup script expanded stream sources with str.format(), which also supports attribute and index access, while the config API check used substitute_frigate_vars and fell back to the raw string when a placeholder could not be resolved. A placeholder the API check could not resolve could therefore expand into a restricted source at startup. The startup script now uses substitute_frigate_vars, like the rest of the config, and the API check rejects a stream source whose placeholders cannot be resolved. The startup script's own copy of the FRIGATE_* env var map is removed; the shared one also honors CREDENTIALS_DIRECTORY. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
21f5ab5a1e |
Parse config stream changes with Frigate's YAML loader
The go2rtc stream check on config/save and config/set parsed the config with the safe loader and treated a parse error as an empty config, while Frigate and the go2rtc startup script use the round-trip loader. Input that only the round-trip loader accepts, such as a tagged root map, hid new stream sources from the check. The check now uses the same round-trip loader and rejects the request when the new config cannot be parsed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
fab41048a1 |
Match go2rtc stream-proxy paths the way nginx does
/auth compared the raw $request_uri path against the three go2rtc stream-proxy paths exactly, while nginx matches its prefix locations against the normalized URI. Encoded characters, repeated slashes, dot segments or a suffix on the path skipped the stream check even though nginx still proxied the request to go2rtc. The go2rtc stream locations now set a variable that the auth subrequest forwards as X-Go2rtc-Stream-Proxy (client headers are not forwarded, so it cannot be spoofed). As a fallback, /auth also normalizes the path like nginx (percent-decoding, merging slashes, resolving dot segments) and prefix matches it, and splits the raw URI by hand since urlparse reads a leading // as a host. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
9b165948c3 |
Apply go2rtc source restrictions to config/save and config/set
go2rtc.streams written through config/save or config/set were only filtered at startup, which blocks echo/expr/exec and the map form but not the ffmpeg: parameters that PUT /go2rtc/streams now rejects. Saving a stream this way and restarting bypassed the API restriction. Both endpoints now reject a change that adds a go2rtc stream source that fails is_restricted_go2rtc_api_source, or a map-form source, unless GO2RTC_ALLOW_ARBITRARY_EXEC is set. Sources already in the saved config for the same stream are left alone, so streams configured on disk keep working and resubmitting the whole file from the config editor succeeds. config/set restores the previous file when it rejects a change. Follow-up to GHSA-qjjw-3v66-279f Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
3bbac1be48 |
Ignore GO2RTC_ALLOW_ARBITRARY_EXEC in environment_vars
environment_vars installs every key into the Frigate process environment at startup, so an admin could enable GO2RTC_ALLOW_ARBITRARY_EXEC from the config and turn off the restricted go2rtc source checks on the API. The override is meant to be set by the operator in the container environment (or the Home Assistant add-on options), so it is now skipped with a warning when it appears in environment_vars. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
945a2d7744 |
Only allow existing streams on proxied go2rtc live paths
nginx proxies /live/mse/api/ws, /live/webrtc/api/ws and /api/go2rtc/webrtc straight to go2rtc, which creates a new ad hoc stream from any src that is not an existing stream name and starts the producer it describes. Any authenticated user, including the built-in viewer role, could use this to launch arbitrary go2rtc sources without going through the restricted-source checks on PUT /go2rtc/streams. The /auth subrequest now denies these paths unless every src names an existing stream: a camera or its live stream, a go2rtc stream from the config, or a stream go2rtc reports at runtime. This applies to every role, and the runtime lookup fails closed when go2rtc cannot be reached. Fixes GHSA-93xj-hg88-ffg7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
12d9ab15c2 |
Restrict ffmpeg: go2rtc sources added through the API
go2rtc expands ffmpeg: sources into an exec: command line built from the source's #key=value parameters, so the echo/expr/exec prefix check on PUT /go2rtc/streams could be bypassed to run arbitrary ffmpeg arguments. Sources submitted through the API now only accept the ffmpeg: parameters the UI and docs use (video, audio, hardware with preset names, plus numeric width/height/rotate/bitrate/timeout and async). Quotes, whitespace, #raw, #input, #drawtext and unknown parameters are rejected unless GO2RTC_ALLOW_ARBITRARY_EXEC is set. Sources defined in the config file are unchanged. Fixes GHSA-qjjw-3v66-279f Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
7badf191e3 | update version |