TYPO3 Bug Bounty Program

Every software contains bugs - some only affect user-experience or how information is handled and some have a severe impact in terms of web application security and data privacy. Since the TYPO3 project wants to encourage security reporters to analyze our products we introduced a dedicated bug bounty program.

General Procedure

Bug bounty reward levels are based on their severity, for example, “critical bugs” discovered will be paid the highest. Based on the CVSS v3.1 (Common Vulnerability Scoring System) severity ratings of reported vulnerabilities, the TYPO3 project will offer the following maximum bug bounties after they have been fixed and released. 

Therefore it is required that vulnerability reports have been confirmed and handled by the TYPO3 Security Team. Similar vulnerabilities that affect multiple versions are considered as one single vulnerability. In case a single component has multiple vulnerabilities, only the most severe one is considered.

In exceptional circumstances, it is possible that the TYPO3 Security Team may grant higher or lower bug bounties based on the actual impact on the TYPO3 community. The program is available for individuals only. People who have a current and active role in teams, committees, or initiatives of the TYPO3 Association are excluded - the TYPO3 Security Team can decide if there should be an exception to the rule.

Main Focus: TYPO3 CMS

TYPO3 is an open-source web content management system (CMS) released under the GPL - therefore the source code of TYPO3 (mainly written PHP and JavaScript/TypeScript) is the main focus of the bug bounty program.

All stable versions that are maintained for the TYPO3 community at the time of a vulnerability report are covered by the bug bounty program. It is required that versions being vulnerable have been released - development-only branches are not considered.

Currently supported and maintained versions (regular maintenance & priority bugfixes) are explained in TYPO3 CMS Roadmap.

Qualifying vulnerabilities

  • SQL injection bugs
  • server-side code execution bugs
  • cross-site scripting vulnerabilities
  • cross-site request forgery vulnerabilities
  • authentication and authorization flaws
  • sensitive information disclosure

Non-qualifying vulnerabilities

  • software with known vulnerabilities - external libraries with known and published vulnerabilities (e.g. jQuery, CKEditor, any composer-based package), usually we are aware of that and upgrade packages (based on their severity) with next scheduled maintenance releases accordingly
  • install tool & maintenance mode flaws - flaws that only work having a super-privileged user
  • debug configuration - "information disclosure" shown as a result of explicitly using debug configuration is not considered a vulnerability
  • XML external entity - XXE cannot be directly exploited with libxml2 version 2.9 in PHP - in case you insist on a XXE vulnerability, provide a corresponding proof-of-concept
  • scenarios that require physical access - attack vectors that require phsyical access to a device are not considered a vulnerability, having physical access might allow compromising the operating system - Google provided a reasonable explanation for back button that keeps working after logout

Extensions (3rd party plugins)

Third-party extensions (plugins) that are not maintained by the TYPO3 Core Team are only covered if their distribution has an impact on the TYPO3 community - based on their download and installation counts. Since packages from packagist.org are used very often in automated tests the threshold has to be much higher compared to downloads from extensions.typo3.org. Only vulnerabilities in extensions that are flagged to be compatible with supported versions of TYPO3 CMS (see above) are covered by this bug bounty program.

tl;dr: Extensions are only eligible in case they are in use for a certain amount of time - the final decision is up to the security team.

Non-qualifying vulnerabilities

  • the same as for TYPO3 CMS (see above)
  • "code via user-interface" extensions - extensions having the explicit purpose to allow non-privileged users writing TypoScript or PHP - which is per definition remote code execution - (most of) those extensions were tagged by the security team already at extensions.typo3.org
  • wrapper extensions - extensions that are just wrapping another 3rd party library - similar to software with known vulnerabilities (e.g. there's a TYPO3 extension wrapping the phpMyAdmin library)
  • CSV Code Injection

Infrastructure

Bug bounties for infrastructure vulnerabilities are evaluated individually. For instance, known vulnerabilities of 3rd party vendors (web server, secure shell, …) or zero-day exploits are probably not eligible.

Services in scope

Out-of-scope services

  • demo.typo3.org - this website does not have strict restrictions on purpose and is reset automatically after 30 minutes
  • lists.typo3.org - mailing lists still exists for legacy reasons and URLs still might be referenced by external sites
  • any other service that is not explicitly mentioned at "services in scope" (see above)

Non-qualifying vulnerabilities

  • public code, issues and reviews - the main purpose of a free-libre open-source project (like TYPO3) is to expose the source code to the public. Therefore public accessible data on review.typo3.org, forge.typo3.org, gitlab.typo3.org and git.typo3.org (incl. all issues, commits, comments, users etc.) are supposed to be public and no vulnerability.
  • presence of banner or version information - version information does not, by itself, expose the service to attacks - so we do not consider this to be a bug - if you find outdated software and have good reasons to suspect that it poses a well-defined security risk, please let us know
  • Tabnabbing
  • Content/Text injections (if non-persistent)
  • Mixed content warnings
  • Clickjacking/UI redressing
  • Denial of Service (DoS) attacks
  • Known CVEs without working PoC
  • Open ports without real security impact
  • 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
  • Outdated libraries without a demonstrated security impact
  • Any hypothetical flaw or best practices without exploitable PoC
  • Expired certificate, best practices and other related issues for TLS/SSL certificates
  • Missing security-related HTTP headers which do not lead directly to a vulnerability
  • Invalid or missing SPF (Sender Policy Framework), DKIM, DMARC records
  • Session expiration policies (no automatic logout, invalidation after a certain time or after a password change)
  • Disclosure of information without direct security impact (e.g. stack traces, path disclosure, directory listings, software versions, IP disclosure, 3rd party secrets)
  • HTTP Strict Transport Security Header (HSTS)
  • Subdomain takeover without a full working PoC
  • Blind SSRF without direct impact (e.g. DNS pingback)
  • Lack of rate-limiting, brute-forcing or captcha issues
  • User enumeration (email, alias, GUID, phone number)
  • Password requirements policies (length / complexity / reuse)
  • Ability to spam users (email / SMS / direct messages flooding)

Reward Amounts

The following matrix shows the maximum amounts for each particular scope. In exceptional circumstances, the TYPO3 Security Team may grant higher or lower bug bounties based on the actual impact on the TYPO3 community.

 critical
(CVSS ≥ 9.0)
high
(CVSS ≥ 7.0)
medium
(CVSS ≥ 4.0)
low
(CVSS < 4.0)
TYPO3 CMSup to 600 EURup to 300 EURup to 150 EURup to 50 EUR
Extensionsup to 300 EURup to 150 EURup to 100 EUR
Infrastructureup to 300 EURup to 150 EURup to 100 EUR

*Rewards have been refined in October 2022, for earlier reports, the previous rules still apply.


Final Remarks

Bug bounty payments usually happen only after a confirmed vulnerability has been fixed and released to the public. In any case, issues have to be reported to the TYPO3 Security Team - via mail to security(at)typo3.org. See more information about incident handling.

This reward program is supposed to be a sign of acknowledgment and appreciation for sophisticated and detailed vulnerability reports. The TYPO3 Security Team will ignore any form of bounty begging or threats against the TYPO3 project.

The budget available for this bug bounty program is granted by the TYPO3 Association annually. This means there is a maximum amout of reward payments that is possible for each year.