FFmpeg Bug Bounty Program
FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations.
Reward
Program
Hacktivity
About our project
FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations.
About the scope
This program is limited to a specific list of assets :
- All of our tools including :
- ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
- ffplay is a minimalistic multimedia player.
- ffprobe is a simple analysis tool to inspect multimedia content.
- Our main libraries
- libavcodec provides implementation of a wider range of codecs.
- libavformat implements streaming protocols, container formats and basic I/O access.
- libavutil includes hashers, decompressors and miscellaneous utility functions.
- libavfilter provides means to alter decoded audio and video through a directed graph of connected filters.
- libavdevice provides an abstraction to access capture and playback devices.
- libswresample implements audio mixing and resampling routines.
- libswscale implements color conversion and scaling routines.
Your tests must be limited to our latest stable version of the different component or the latest master/main branch on GitHub. Reports about other assets won't be eligible for reward.
Documentation
You may find our project documentation here.
Packaged versions may be found here, mind that to be eligible for reward your report must be reproductible against our GitHub repository's version.
Program rules
About report's content
To be eligible, your reports must include the hereafter information :
- General description of the issue
- Details about the impacted function and specific conditions to be met, including the vulnerable code snippet
- Impacted version
- A step by step proof of concept allowing to reliably reproduce the issue, including network exploitation
- A video of the PoC, demonstrating the full exploitation
- Recommendations and fix suggestions
A detailed template will be provided automatically when submitting a report, please stick to it. This will help us ensure a smooth and swift processing of your reports.
Mind that reports that do not follow the template’s guidelines won’t be eligible for reward. Abuse may lead to further sanctions (e.g. spamming or repeated submission of invalid reports).
All reports must include screenshots, video(s), logs and evidence, that show the full exploitation on your end. Providing us with a script to run ourselves will be deemed insufficient. Reports that fail to present required evidence, will likely be rejected.
Testing Policy, Responsible Disclosure
Please adhere to the following rules while performing research on this program:
- Denial of service (DoS) attacks on our applications, servers, networks or infrastructure are strictly forbidden
- All reports must be validated manually, submission from automated tools won't be considered and may lead to sanctions (code analysis tools, AI, …)
- Targeting other users' instances is forbidden, only test against your own
- DO NOT include Personally Identifiable Information (PII) in your report and please REDACT/OBFUSCATE the PII that is part of your PoC (screenshot, server response, JSON file, etc.) as much as possible.
- Same with secrets, keys and credentials
- No vulnerability disclosure, full, partial or otherwise, is allowed without prior agreement from us
- Please avoid submitting security issues on our repositories before reporting it to this program, your report might be considered as a duplicate if a related submission already exists on our repositories
- The following topics won’t be considered as a valid finding eligible for reward nonetheless, you’re welcome to suggest improvements about it through our repositories but not our bug bounty program :
- Code improvements/code quality issues without security impact
- Insecure default/basic configurations
- Mistakes or lack of precision in our documentation
Reward Eligibility
We are happy to thank everyone who submits valid reports which help us improve the security, however only those that meet the following eligibility requirements may receive a monetary reward:
- You must be the first reporter of a vulnerability
- You must not break any of the testing policy rules listed above
- You must not be a former or current employee nor a maintainer of our project or one of its contractors
- The vulnerability must be a qualifying vulnerability
- The report must contain the following elements:
- Clear textual description of the vulnerability, how it can be exploited, the security impact it has on the application, its users and the company, and remediation advice on fixing the vulnerability
- Proof of exploitation: screenshots demonstrating the exploit was performed, and showing the final impact
- Provide complete steps with the necessary information to reproduce the exploit, including (if necessary) code snippets, payloads, commands etc
- Identical vulnerabilities present in different versions will be considered as a single issue/will warrant a single reward
- Multiple vulnerabilities caused by one underlying issue will be considered as a single issue/will warrant a single reward
Reward amounts are based on:
- Reward grid of the report's scope
- CVSS scoring and actual business impact of the vulnerability upon performing risk analysis
Reward
| Asset value | CVSS | CVSS | CVSS | CVSS |
|---|---|---|---|---|
| €500 | €1,000 | €2,000 | €5,000 |
Systemic issues
We appreciate all valid reports submitted to our program that enhance our security. However, please note that if a similar issue (see definition in 'More info') has already been reported, by you or any other hunter, the reward will be decreasing according to these percentages.
Scopes
| Scope | Type | Asset value | Expand rewards grid |
|---|---|---|---|
https://git.ffmpeg.org/gitweb/ffmpeg.git | Open Source | ||
Low Medium High Critical | |||
Out of scopes
- Any asset that is not explicitly included in our program's scope
- Any third parties’ or Community’s assets that are not explicitly included (e.g. forks, libraries or packages)
- Any depreciated versions and other versions than the current stable/official version are considered out of scope except if specified otherwise in the program’s rules
- Any local implementation of the project/implementation belonging to third parties
Vulnerability types
Qualifying vulnerabilities
- SQL Injection (SQLi)
- Cross-Site Scripting (XSS)
- Remote Code Execution (RCE)
- Insecure Direct Object Reference (IDOR)
- Horizontal and vertical privilege escalation
- Authentication bypass & broken authentication
- Business Logic Errors vulnerability with real security impact
- Local files access and manipulation (LFI, RFI, XXE, SSRF, XSPA)
- Cross-Origin Resource Sharing (CORS) with real security impact
- Cross-site Request Forgery (CSRF) with real security impact
- Open Redirect
- Cryptographic flaws (e.g. using insecure crypto primitives, insufficient randomness, incorrect handling of keys, …)
- Memory corruption or safety issues (e.g. use-after-free, double free, aliasing, out-of-bounds access, …)
- Missing validations of untrusted inputs (e.g. injection of unescaped markup in output, following untrusted symlinks, …)
- Undefined behavior leading to a security vulnerability (e.g. integer overflow)
- Race conditions (e.g. time-of-check-to-time-of-use races on file system checks)
- Exposed secrets, credentials or sensitive information from an in-scope asset and affecting at least one of our scopes
Non-qualifying vulnerabilities
- Tabnabbing
- Content/Text injections
- Clickjacking/UI redressing
- Denial of Service (DoS) attacks
- Recently disclosed CVEs (less than 30 days since patch release)
- CVEs without exploitable vulnerabilities and PoC
- Open ports or services without exploitable vulnerabilities and PoC
- Social engineering of staff or contractors
- Presence of autocomplete attribute on web forms
- Vulnerabilities affecting outdated browsers or platforms
- Self-XSS or XSS that cannot be used to impact other users
- Any hypothetical flaw or best practices without exploitable vulnerabilities and PoC
- SSL/TLS issues (e.g. expired certificates, best practices)
- Unexploitable vulnerabilities (e.g. Self-XSS, XSS or Open Redirect through HTTP headers...)
- Reports with attack scenarios requiring MITM or physical access to victim's device
- Missing security-related HTTP headers which do not lead directly to an exploitable vulnerability and PoC
- Low severity Cross-Site Request Forgery (CSRF) (e.g. Unauthenticated / Logout / Login / Products cart updates...)
- Session management issues (e.g. lack of expiration, no logout on password change, concurrent sessions)
- Disclosure of information without exploitable vulnerabilities and PoC (e.g. stack traces, path disclosure, directory listings, software versions, IP disclosure, 3rd party secrets, EXIF Metadata, Origin IP)
- CSV injection
- Malicious file upload (e.g. EICAR files, .EXE)
- Blind SSRF without exploitable vulnerabilities and PoC (e.g. DNS & HTTP pingback, Wordpress XMLRPC)
- Lack or bypass of rate-limiting, brute-forcing or captcha issues
- User enumeration (e.g. email, alias, GUID, phone number, common CMS endpoints)
- Weak password policies (e.g. length, complexity, reuse)
- Ability to spam users (email / SMS / direct messages flooding)
- Password reset token sent via HTTP referer to external services (e.g. analytics / ads platforms)
- Pre-account takeover (e.g. account creation via oAuth)
- Exploits that rely on non standard configurations too distant from normal use cases or official recommendations
- Exploits that rely on a voluntarily downgraded configuration
- Stolen secrets, credentials or information gathered from a third-party asset that we have no control over
- Exposed secrets, credentials or information on an out of scope asset
Reports of leaks and exposed credentials
In the context of this program, we do not intend to encourage, accept or reward reports of leaks that are not applicable to our program’s scope and policy. To summarize our policy, you may refer to the below table:
Hunters collaboration
When submitting new report, you can add up to 5 collaborators, and define the reward split ratio.
For more information, see help center.
Note: For reports that have already been rewarded, it is not possible to redistribute the rewards.