avatar
Bug bounty
Public

BETA.GOUV.FR - AGORA GOUV - Public 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

Bounty
Hall of fame
€50
Low
€100
Medium
€400
High
€1,000
Critical
€3,000

Program

Avg reward
€212.5
Max reward
€300
Scopes
5

Supported languages
English
French

Hacktivity

Reports
30
1st response
< 1 day
Reports last 24h
-
Reports last week
-
Reports this month
-

About us

BETA.GOUV.FR

beta.gouv.fr is the French government's Digital Services Incubator. Our mission is to design digital public services. Our two principles: simplicity and trust, we create State Startups which are small, autonomous teams whose mission is to change the rules of the game.

A State Startup is not just an oxymoron, but a match between a team and a mission. There is no capital investment, no separate juridical entity, only the usage of the tools and practices of the digital startups to solve a friction in an interaction an administration has with citizens. How it works :

  • A civil servant investigates a pain point affecting citizens dealing with government
  • A team of two to four builds a product in under six months using modern technologies
  • The team scales the service out by meeting the needs of a broader user population
  • A public sector body assumes ownership of the product and continuously improves it

beta.gouv.fr is a service of the Direction Interministérielle du NUMérique (DINUM).

Agora App

Agora is a mobile application that allows citizens to :

  • Respond to consultations proposed by the government
  • Follow the results of these consultations
  • Ask questions directly to the government, by asking them themselves or by supporting those of other citizens
  • Receive answers from the government

Our Bug Bounty approach

We consider crucial to work with trusted and qualified security researchers to identify weaknesses in our applications, regardless of the technology used, and improve our assets 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.

Regarding testing conditions

How to access the scope/retrieve an account

You are free to self register as a simple user / use our GitHub repository to build your own instance of our application.

During your tests, mind that accounts are linked to a device/to your navigation sessions which can be reset during your tests (e.g. mobile emulator reboot or cache purge).

Where to find our application's code and documentation

Sources codes are available here for the purpose of your tests :

Mind that the Web application repository is only a snapshot build generated from the mobile application code and may be outdated, thus it is considered as OOS and we ask you to focus on the mobile app's code.

Protected endpoints of our API

Some endpoints of our API should only be accessible to users with privileges, you're welcomed to test for bypass of those restrictions.

Endpoints for moderators & administrators only:

  • GET /moderatus/new_qags
  • GET /moderatus/ack_qags
  • GET /moderatus/result_qag
  • GET /admin/testNotification
  • GET /admin/consultations/consultationId/responses
  • GET /admin/consultations/consultationId/responses/open
  • GET /admin/notifyNewConsultation/consultationId
  • GET /admin/notifyConsultationUpdate/consultationId
  • GET /admin/notifyQag/qagId

qagId is the technical ID of a question to the government
Example of qagId:
1cde43fe-ee6c-11ed-a05b-0242ac120003

consultationId is the technical ID of a consultation
Example of consultationId:
f5fd9c1d-6583-494c-8b0f-78129d6a0382

Additional instructions

All tests must be conducted on the sandbox environment, please avoid interfering with production environment.

The sandbox environment's API is : https://api.sandbox.agora.incubateur.net

For compiled mobile applications

You can retrieve the .apk and .ipa files in attachement to this Bug Bounty program :

Both builds were designed to target the sandbox environment.
The .ipa file can only be installed on whitelisted devices, you will have to compile your own iOS app to be able to test it.

For Web App version
It is available here: https://app.sandbox.agora.incubateur.net

Program Rules

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 others weaknesses, only one endpoint will be considered as eligible for a reward and other reports will be closed as Informative/Duplicates.

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

Please note that we may modify the terms of this program or terminate it at any time.

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 behavior (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 organisation but is out-of-scope Source of leak does not belong to our organisation 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 sensitivie information leak, DO NOT extract/copy every document or data that is exposed and limit yourself to describe and list what is exposed.


Reward

Asset value CVSS
Low
CVSS
Medium
CVSS
High
CVSS
Critical
Low
€100€400€1,000€3,000

Scopes

ScopeTypeAsset value
Agora for Android (see dowload link for APK file and mobile app GitHub repository in description) mobile-application-android
Low
Low
€100
Medium
€400
High
€1,000
Critical
€3,000
Agora for iOS (see dowload link for IPA file and mobile app GitHub repository in description) mobile-application-ios
Low
Low
€100
Medium
€400
High
€1,000
Critical
€3,000
https://app.sandbox.agora.incubateur.net web-application
Low
Low
€100
Medium
€400
High
€1,000
Critical
€3,000
https://api.sandbox.agora.incubateur.net (source code available on GitHub, see description) api
Low
Low
€100
Medium
€400
High
€1,000
Critical
€3,000
https://content.agora.beta.gouv.fr other
Low
Low
€100
Medium
€400
High
€1,000
Critical
€3,000

Out of scopes

  • All assets not listed as in scope must be considered as out of the scope of this program
  • Production environments are out of the scope of this program
  • agora.beta.gouv.fr
  • Web application's Github repository (https://github.com/agora-gouv/agora-webapp), you may refer to the mobile app's repository

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 device
  • Generic Android or iOS vulnerabilities
  • 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

Hunting requirements

Account access

You are free to self register as a simple user / use our GitHub repository to build your own instance of our application.

During your tests, mind that accounts are linked to a device/to your navigation sessions which can be reset during your tests (e.g. mobile emulator reboot or cache purge).

User agent

Please append to your user-agent header the following value: ' bugbounty-beta.gouv.fr-agora '.


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.