DINUM - Tchap - Bug Bounty Program
The Direction Interministérielle du NUMérique (DINUM) is in charge of the French State's digital transformation for the benefit of citizens and civil servants alike, in all its aspects. It supports public services, advises the government and develops common resources.
Reward
Program
Hacktivity
About us
The Direction Interministérielle du NUMérique (DINUM)
The Direction Interministérielle du NUMérique (DINUM) is in charge of the French State's digital transformation for the benefit of citizens and civil servants alike, in all its aspects:
- Modernisation of the State's information system
- Quality of digital public services
- Creation of innovative services for citizens
- Design of digital collaborative work tools for agents
It supports public services, advises the government and develops common resources such as the Inter-ministerial State Network (RIE) or the French eIDAS node (FranceConnect).
Tchap
DINUM is developing the Tchap instant-messaging application. It is a end-to-end encrypted instant-messaging service dedicated to French administration. It is available with an Android and an iOS application, and a web interface available at https://www.tchap.gouv.fr. All of them exchange with the servers through an API at https://matrix.agent.*.tchap.gouv.fr and https://matrix.agent.tchap.gouv.fr.
The DINUM Bug Bounty approach
The DINUM considers crucial to work with trusted and qualified security researchers to identify weaknesses in its applications, regardless of the technology used, and improve its assest security by leveraging the YWH community's motivation and skills.
If you believe you have found a security problem in our products or services we'll be happy to hear about it as well as to work with you on fixing it as quickly as possible.
Of course, we expect you to work in a responsible manner given out applications' contexts in order to avoid any interruption of service and to protect the privacy of our users. Thus, please do not try to over-exploit a bug, in doubt please contact us for further guidance.
As the French public state is committed to an open data approach, most of our applications' source codes are publicly available on GitHub . If proposals for fixes and improvements on the concerned GitHub project will be appreciated mind that reporting any security issue through this mean is forbidden.
What is considered sensitive information ?
On the server (for a non Tchap participant) :
- Modification of a public keys of a user
- All information from the database, i.e. meta-data.
In a private room (for a non-participant to the room) :
- All information: messages, meta-data and attachments.
- Private keys
On mobile applications :
Exploitation of vulnerabilities or misconception of the mobile application (IOS & Android) allowing extraction of information about the user, his messages or that may lead to deeper exploitation and compromission of the Tchap application are of particular interest to us.
Nevertheless, Tchap information stored in the phone mustn't be obtained neither via a rooted nor a jailbroken phone, but only via a malware-free phone, by using the means and permissions offered to any application. This kind of technics can still be used to retrieved confidential informations that the phone shouldn't have access to.
What are sensitive information for Tchap mobile Application :
- Private Key
- Messages and attachments
- Private room meta-data
Regarding testing conditions
How to access the scope/retrieve an account
A non-production environment is available to you so you may test our application as an authenticated user. Mind that if you find the same issue on both production and non-production environment you'll only be rewarded once.
You may self-register on https://www.beta.tchap.gouv.fr by using your YWH aliases.
The system provides multiple levels of access using roles. By default, your account have the role "user". You will be able to invite other emails from this account, they will be granted the "guest" role.
On https://www.beta.tchap.gouv.fr API endpoints are https://matrix.i.tchap.gouv.fr (for the account you will create) and https://matrix.e.tchap.gouv.fr/ (API for account with "guest" role) instead of https://matrix.agent.*.tchap.gouv.fr and https://matrix.agent.tchap.gouv.fr.
Where to find our application's code and documentation
Our application is open source, the code can be found at https://github.com/tchapgouv for the clients and at https://github.com/matrix-org for the server.
Please do not notify security issues through GitHub. Notifications of publicly available issues will not be rewarded. Proposals of fix for security issues on the GitHub will be appreciated. Commit timing shall be discussed during the security issue evaluation process. Additional credits can be attributed in case of accepted pull request.
Here are the main repositories you may want to have a look at :
- Tchap Android : https://github.com/tchapgouv/tchap-android
- Tchap iOS : https://github.com/tchapgouv/tchap-ios
- Tchap Web : https://github.com/tchapgouv/tchap-web-v4
- https://github.com/tchapgouv/matrix-react-sdk
- https://github.com/tchapgouv/matrix-js-sdk
- Matrix homeserver : https://github.com/matrix-org/synapse-dinsic
- Matrix identity server : https://github.com/matrix-org/sydent
- Matrix content scanner : https://github.com/matrix-org/matrix-content-scanner
About https://matrix.agent.*.tchap.gouv.fr
Note that several subdomains allow access through https://matrix.agent.*.tchap.gouv.fr and you can find them in the configuration file of the web frontend here
Regarding Forms and contact/reservation features
Please use your YWH aliases (*@yeswehack.ninja) whenever testing forms or contact features and, if possible, append the following message to free input fields (e.g. message body or comment) :
[Bug Bounty, please ignore - Contact Cybersecurity team if needed]
It'll help us triage your reports more seamlessly.
Program Rules
Reporting & Disclosure Policy
DINUM believes that working with skilled security researchers across the globe is crucial in identifying weaknesses in any technology. If you believe you've found a security issue in our products or services, we encourage you to notify us. We welcome working with you to resolve the issue promptly.
Let us know as soon as possible upon discovery of a potential security issue, and we'll make every effort to quickly resolve the issue.
Provide us a reasonable amount of time to resolve the issue before any disclosure to the public or a third-party.
Please avoid DDOSing us or causing any service disruption while testing our platform. And take care of not endangering the privacy or our members.
Do not try to over exploit the bug and access internal data for further vulnerabilities. We will determine the severity and reward accordingly.
Testing Policy and 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.
- Avoid tests that could cause degradation or interruption of our services.
- Do not use automated scanners or tools that generate large amount of network traffic.
- Do not leak, manipulate, or destroy any user data or files in any of our applications/servers.
- Do not copy any files from our applications/servers and disclose them.
- No vulnerability disclosure, full, partial or otherwise, is allowed.
Reward Eligibility and Amount
We are happy to thank everyone who submits valid reports which help us improve our security, however only those that meet the following eligibility requirements may receive a monetary reward:
- You must be the first reporter of a vulnerability.
- The vulnerability must be a qualifying vulnerability (see below).
- 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 our organisation, 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
- You must not break any of the testing policy rules listed above.
- You must not be a former or current employee of our organisation or one of its contractors.
- If you find the same vulnerability several times, please create only one report and eventually use comments. You'll be rewarded according to your findings.
- The triage team will use the "One Fix One Reward" process: if two or more endpoints/forms use the same code base and a single fix can be deployed to fix all the other weaknesses, only one endpoint will be considered as eligible for a reward and other reports will be closed as Informative/Duplicate.
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
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 identified outside of our program’s scope, such as:
- Exposed credentials in/from an out-of-scope asset/source
- Sensitive information exposed in/from an out-of-scope asset/source
Also, in order not to encourage dark and grey economies, in particular the purchase, resale and trade of identifiers or stolen information, as well as all types of dangerous behaviour (e.g. social engineering, ...), we will not accept or reward any report based on information whose source is not the result of failure on the part of our organization or one of our employees/service providers.
This excludes, but is not limited to:
- Stolen credentials gathered from unidentified sources
- Exposed credentials that are not applicable on the program’s scope
- Exposed GitHub/GitLab (or similar) instance with no direct relation with our program’s scope
- Exposed secrets (e.g. API tokens/keys or other technical credentials) that are not directly related to the program’s scope
- Exposed PII on an out-of-scope asset
To summarize our policy, you may refer to this table :
Source of leak is in-scope | Source of leak belongs to our organization but is out-of-scope | Source of leak does not belong to our organization and is out-of-scope | |
---|---|---|---|
Impact is in-scope (e.g. valid credentials on an in-scope asset) | Eligible | Eligible | Not Eligible |
Impact is out-of-scope (e.g. valid credentials for an out-of-scope asset) | Eligible | Not Eligible | Not Eligible |
Important precautions and limitations
As a complement to the Program’s rules and testing policy :
- DO NOT alter compromised accounts by creating, deleting or modifying any data
- DO NOT use compromised accounts to search for post-auth vulnerabilities (they won’t be eligible anyway)
- 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.
- In case of exposed credentials or secrets, limit yourself to verifying the credentials validity
- In case of sensitive information leak, DO NOT extract/copy every document or data that is exposed and limit yourself to describe and list what is exposed.
Please note that we may modify the terms of this program or terminate it at any time.
Reward
Asset value | CVSS | CVSS | CVSS | CVSS |
---|---|---|---|---|
€100 | €500 | €3,000 | €8,000 |
Scopes
Scope | Type | Asset value | Expand rewards grid |
---|---|---|---|
https://www.tchap.gouv.fr | web-application | ||
Low Medium High Critical | |||
https://matrix.agent.tchap.gouv.fr | api | ||
Low Medium High Critical | |||
https://matrix.agent.*.tchap.gouv.fr | api | ||
Low Medium High Critical | |||
https://github.com/tchapgouv | other | ||
Low Medium High Critical | |||
https://play.google.com/store/apps/details?id=fr.gouv.tchap.a&hl=fr | mobile-application-android | ||
Low Medium High Critical | |||
https://apps.apple.com/fr/app/tchap/id1446253779 | mobile-application-ios | ||
Low Medium High Critical | |||
https://www.beta.tchap.gouv.fr | web-application | ||
Low Medium High Critical | |||
https://matrix.i.tchap.gouv.fr | api | ||
Low Medium High Critical | |||
https://matrix.e.tchap.gouv.fr | api | ||
Low Medium High Critical |
Out of scopes
- Everything that not listed as in scope is to be considered as out of scope of this program
- Please note that Tchap is hosted by a third party and thus vulnerabilities related to the host are out of the scope
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
- Exposed secrets, credentials or sensitive information on an asset under our control and affecting at least one of our scopes
Non-qualifying vulnerabilities
- Tabnabbing
- Missing cookie flags
- Content/Text injections
- Mixed content warnings
- Clickjacking/UI redressing
- Denial of Service (DoS) attacks
- Known CVEs without working PoC
- Open ports without real security impact
- 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
- 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
- Unexploitable vulnerabilities (ex: XSS or Open Redirect in HTTP Host Header)
- Reports with attack scenarios requiring MITM or physical access to victim's device
- Missing security-related HTTP headers which do not lead directly to a vulnerability
- Unauthenticated / Logout / Login and other low-severity Cross-Site Request Forgery (CSRF)
- 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)
- CSV injection
- 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)
- Disclosed / misconfigured Google API key (including Google Maps)
- Recently disclosed 0-day vulnerabilities (less than 30 days since patch release)
- Password reset token leak on trusted third-party website via Referer header (eg Google Analytics, Facebook…)
- Task Hijacking
- Crashing your own application
- Lack of client-side protections on mobile binaries: SSL pinning/binary protection/code obfuscation/jailbreak detection/root detection/anti-debugging controls/ etc
- Lack of encryption on internal databases/preference files on mobile device
- Exploits that are only possible on Android versions that are not currently supported at the time of the emission of the vulnerability report
- Exploits that are only possible on IOS versions that are not currently supported at the time of the emission of the vulnerability report
- Exploits that are only possible on a jailbroken/rooted device
- Generic Android or iOS vulnerabilities
- Massive automated actions on the platform through robots/crawling (except if it gathers sensitive information from members)
- Persistent login cookie weaknesses
- Stolen secrets, credentials or information gathered from a third-party asset that we have no control over
- Exposed secrets, credentials or information on an asset under our control that are not applicable to the program’s scope
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.