From: Michael Niedermayer <michael@niedermayer.cc>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 1/3] avformat/dashdec: fail on probing non mpd file extension
Date: Tue, 9 May 2023 22:44:02 +0200
Message-ID: <20230509204402.GA1391451@pb2> (raw)
In-Reply-To: <168361317605.3843.15085974109463921278@lain.khirnov.net>
[-- Attachment #1.1: Type: text/plain, Size: 3859 bytes --]
On Tue, May 09, 2023 at 08:19:36AM +0200, Anton Khirnov wrote:
> Quoting Michael Niedermayer (2023-05-09 00:35:08)
> > On Mon, May 08, 2023 at 04:05:40PM +0200, Tobias Rapp wrote:
> > > On 08/05/2023 14:00, James Almer wrote:
> > >
> > > > On 5/6/2023 10:25 AM, Michael Niedermayer wrote:
> > > > > Its unexpected that a .avi or other "standard" file turns into a
> > > > > playlist.
> > > > > The goal of this patch is to avoid this unexpected behavior and possible
> > > > > privacy or security differences.
> > > > >
> > > > > This is similar to the same change to hls
> > > > >
> > > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > > > > ---
> > > > > libavformat/dashdec.c | 11 +++++++----
> > > > > 1 file changed, 7 insertions(+), 4 deletions(-)
> > > > >
> > > > > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
> > > > > index 29d4680c68..294e14150d 100644
> > > > > --- a/libavformat/dashdec.c
> > > > > +++ b/libavformat/dashdec.c
> > > > > @@ -2336,10 +2336,13 @@ static int dash_probe(const AVProbeData *p)
> > > > > av_stristr(p->buf, "dash:profile:isoff-live:2011") ||
> > > > > av_stristr(p->buf, "dash:profile:isoff-live:2012") ||
> > > > > av_stristr(p->buf, "dash:profile:isoff-main:2011") ||
> > > > > - av_stristr(p->buf, "3GPP:PSS:profile:DASH1")) {
> > > > > - return AVPROBE_SCORE_MAX;
> > > > > - }
> > > > > - if (av_stristr(p->buf, "dash:profile")) {
> > > > > + av_stristr(p->buf, "3GPP:PSS:profile:DASH1") ||
> > > > > + av_stristr(p->buf, "dash:profile")) {
> > > > > + if (!av_match_ext(p->filename, "mpd")) {
> > > > > + av_log(NULL, AV_LOG_ERROR, "Not detecting dash with non
> > > > > standard extension\n");
> > > > > + return 0;
> > > > > + }
> > > > > +
> > > > > return AVPROBE_SCORE_MAX;
> > > > > }
> > > >
> > > > Failing because it didn't match an extensions sort of goes against the
> > > > point of probing, which even has a low score return value that's
> > > > basically "it matched extension" as a sort of last resort.
> > > >
> > > > I'd say wrap this in a FF_COMPLIANCE_STRICT check (since i assume the
> > > > spec does state mpd must be the extension), but i think we have no
> > > > access to the AVFormatContext here?
> > >
> > > DASH is usually transferred over HTTP where file extensions are of minor
> > > interest, the relevant type information is in the Mime-Type header.
> >
> > would anyone be opposed to return 0 from dash_probe() when
> > both the mime_type and the extension are wrong ?
>
> I would.
>
> probe() is for probing, not implementing security policies. IMO trying
> to fix security issues at the wrong layer will only lead to more
> confusion, more complexity, and LESS security.
YES i agree, probe is not for security policies
Its for probing but IMHO
If you have a
taxreport.pdf that parses correctly as jar and installs jRAT if you execute it
Then it would be valid for probe() to identify this as type exploit instead
of type jar. And doing so would be more secure.
This is really more along the line of thought here for hls too.
a file with avi/mkv/mov/mxf/mpg/mp4 extension is not a hls playlist
Could someone have added that extension by mistake, yes
similarly your jar file could be named .pdf by mistake. But thats not
a good default assumtation and i dont think anyone would assume that
by default.
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If the United States is serious about tackling the national security threats
related to an insecure 5G network, it needs to rethink the extent to which it
values corporate profits and government espionage over security.-Bruce Schneier
[-- 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-09 20:44 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-06 13:25 Michael Niedermayer
2023-05-06 13:25 ` [FFmpeg-devel] [PATCH 2/3] avformat/imfdec: fail on probing non xml " Michael Niedermayer
2023-05-06 18:01 ` Pierre-Anthony Lemieux
2023-05-07 19:18 ` Michael Niedermayer
2023-05-08 5:09 ` Pierre-Anthony Lemieux
2023-05-08 18:23 ` Michael Niedermayer
2023-05-08 18:40 ` Pierre-Anthony Lemieux
2023-05-08 22:01 ` Michael Niedermayer
2023-05-08 22:13 ` Pierre-Anthony Lemieux
2023-05-06 13:25 ` [FFmpeg-devel] [PATCH 3/3] avformat/mpeg: Fix filename extension check for subtitle file Michael Niedermayer
2023-05-07 20:41 ` [FFmpeg-devel] [PATCH 1/3] avformat/dashdec: fail on probing non mpd file extension Anton Khirnov
2023-05-08 12:00 ` James Almer
2023-05-08 14:05 ` Tobias Rapp
2023-05-08 14:38 ` Pierre-Anthony Lemieux
2023-05-08 17:10 ` Michael Niedermayer
2023-05-08 17:34 ` Pierre-Anthony Lemieux
2023-05-08 22:35 ` Michael Niedermayer
2023-05-09 6:19 ` Anton Khirnov
2023-05-09 7:35 ` Tobias Rapp
2023-05-09 20:02 ` Michael Niedermayer
2023-05-09 20:44 ` Michael Niedermayer [this message]
2023-05-10 6:44 ` Tobias Rapp
2023-05-10 14:01 ` Michael Niedermayer
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=20230509204402.GA1391451@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