From: Michael Niedermayer <michael@niedermayer.cc> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH] [RFC] avformat: Add basic same origin check Date: Wed, 3 May 2023 21:05:26 +0200 Message-ID: <20230503190526.GE1391451@pb2> (raw) In-Reply-To: <1846772.vxqQoQgO3c@basile.remlab.net> [-- Attachment #1.1: Type: text/plain, Size: 3530 bytes --] On Wed, May 03, 2023 at 07:07:09PM +0300, Rémi Denis-Courmont wrote: > Le keskiviikkona 3. toukokuuta 2023, 16.33.59 EEST Michael Niedermayer a écrit > : > > This patch was inspired by a report on ffmpeg-security about SSRF > > (for which custom io_open() callback or soem sort of sandboxing/VM can be > > used to avoid it) > > The patch here was intended to explore if we can provide something thats > > better tahn currently by default > > I am not sure how a dodgy HLS manifest would be any different from the user > clicking an hyperlink from a dodgy website - or opening a dodgy playlist file > in their FFmpeg-based media player application for that matter. Either way, it > can open any URL. The difference is with a dodgy link its the web browser that has to protect the user. With a dodgy HLS file its ffmpeg that has to protect the user. > > It is obviously not an ideal situation, but any restriction here will most > definitely break existing use cases (and likely be abused by server operators > to lock FFmpeg out). My goal is to make it more secure by default and to keep it reasonable convenient to the user So to me at least, if i open an hls file and i get a popup asking me "foobar.hls wants to access http://localhost/someexploit," "[Allow] [Deny] [Allow Always] [Deny Always]" thats a win and i wouldnt call that "Breaking" an existing usecase. Nor is that allowing any server operator to lock FFmpeg out For a non GUI app thats a matter of adjusting the command line or defaults by more classical means. If we can make this more convenient to the user while keeping it secure we should. But we should not make it more convenient than what can be done securely. > > Even the "obvious" blocking of secure (HTTPS) to nonsecure (HTTP) references > is likely to break stuff. If the end result is that everybody just turns origin > checking off, it's pretty pointless. > > > But the same issue with roles flipped occurs for the end user and the user > > cannot be expected to setup a custom io_open() callback for his player > > The current code can be also used to poke > > around the local network of the user. Which is unexpected by the user > > for example a avi file could be probed as a m3u8 playlist and then > > poke around on the local net while mixing that with remote urls > > from the timing of the remote accesses the remote party should be able > > to infer what happened with the local poking. > > I agree, but it is unrealistic to change anything here. People make playlists > mixed with local files and network file systems or cloud storage services. Yes, > there is a slight information leakage. For instance, you can probe if a local > file exists by interleaving local and remote URLs in a playlist. I dont know what software you are using but FFmpeg will prevent this attack with default protocol whitelists If you have a hls file that mixes local files and remote http(s) then you need to override the default protocol whitelist. If iam the user i would do that for that one file which in fact in that case really has to be my file i wrote. Of course nothing stops the user to set that by default for all urls, thats the users choice, but i think its much wiser not to do that thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Elect your leaders based on what they did after the last election, not based on what they say before an election. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 195 bytes --] [-- Attachment #2: Type: text/plain, Size: 251 bytes --] _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2023-05-03 19:05 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-05-02 19:36 Michael Niedermayer 2023-05-02 20:00 ` James Almer 2023-05-02 20:16 ` Michael Niedermayer 2023-05-02 20:57 ` James Almer 2023-05-02 21:15 ` Michael Niedermayer 2023-05-03 9:26 ` Anton Khirnov 2023-05-03 10:05 ` Hendrik Leppkes 2023-05-03 10:49 ` Michael Niedermayer 2023-05-03 12:24 ` Hendrik Leppkes 2023-05-03 19:08 ` Michael Niedermayer 2023-05-03 21:01 ` Timo Rothenpieler 2023-05-03 22:26 ` Michael Niedermayer 2023-05-03 9:23 ` Anton Khirnov 2023-05-03 11:16 ` Rémi Denis-Courmont 2023-05-03 13:33 ` Michael Niedermayer 2023-05-03 16:07 ` Rémi Denis-Courmont 2023-05-03 19:05 ` Michael Niedermayer [this message] 2023-05-03 19:35 ` Rémi Denis-Courmont
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20230503190526.GE1391451@pb2 \ --to=michael@niedermayer.cc \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git