Prevent SSRF and stalled opens in WebRTC MJPEG input - #2958
Conversation
Co-authored-by: Codex <noreply@openai.com>
|
👋 Thanks for the pull request! Here is how automated Claude review works here, so you spend credits (and reviewer time) wisely. 🚦 This PR is marked Ready for review, so automated Claude review will run — and every pass spends real credits. Warning 💸 The Claude reviewer bills in credits, not vibesAutomated review spins up a real agent that reads real code and spends real credits on every pass. It is glad to help — but it is not a rubber duck, a linter you poke in a loop, or a substitute for reading the contributing guide. Treat it like an expensive senior reviewer whose time you booked, and show up prepared. Draft when unsure, Ready when you mean it:
However you get there, arrive prepared:
Reviews are not free. A draft costs nothing to review; a Ready PR is a promise that it is worth reviewing.
|
|
🤖 Claude review started at commit New commits are not auto-reviewed. Add the |
|
Skills: review-topic-input-boundary-security, review-core-infra, review-topic-secure-gateway-url-wrapping, review-topic-test-hygiene. No dedicated surface skill covers Review summary — no blocking findings. MJPEG opening now routes through Verified: Note for maintainers: this is a user-visible behavior change for WebRTC MJPEG — existing private/LAN cameras now require Commands that informed this review: Reviewed at HEAD: 400a26e |
|
😎 PR passes the vibe-check and trust-me-bro verification. |
What does this PR do?
Caller-controlled mjpeg_url values could access local files and internal services
or block worker initialization.
Route MJPEG through the existing protected HTTP transport, validate and pin
destination IPs on every redirect, restrict decoding to MJPEG, and add timeouts
and connection cleanup.
Private cameras now require WEBRTC_MJPEG_ALLOW_NON_GLOBAL_ADDRESSES=True on the
server.
Type of Change
Testing
106 tests passed using an isolated transport harness
Checklist
Additional Context
N/A