Skip to Content
ResourcesSecurity research program

Security Research Program

At Arcade, security is fundamental to our mission of building safe and reliable . We recognize that the security research community plays a valuable role in identifying potential vulnerabilities.

Scope

Our program covers security issues in:

  • Arcade production services and APIs
  • authentication and authorization mechanisms
  • Data handling and storage systems
  • Published open-source components

What we’re looking for

We’re interested in reports about:

  • Authentication or authorization bypasses
  • Data exposure or leakage
  • Injection vulnerabilities
  • Logic flaws affecting behavior
  • Issues that could compromise user data or integrity

A finding that shows one reading or changing another tenant’s tokens, secrets, or data is in scope. Send that.

Reporting process

Please email our security team with:

  • A clear description of the issue
  • Steps to reproduce
  • Potential impact assessment
  • Any relevant proof-of-concept code (please be responsible)

We’ll acknowledge receipt within 72 hours and aim to provide an initial assessment within one week.

Guidelines

  • Please allow us reasonable time to address issues before public disclosure
  • Avoid automated scanning that could impact service availability
  • Do not access or modify other ’ data
  • Keep any discovered vulnerabilities confidential until resolved

Recognition

While we’re a small team with limited resources, we appreciate the effort researchers put into improving our security. We’ll credit researchers (with permission) in our security updates and may provide modest rewards for significant findings on a case-by-case basis.

For questions about this program, please contact our security team.

Common questions

Researchers most often ask about mail authentication, DNS, and OAuth reports that describe the Arcade Cloud data model.

Arcade’s DNS settings are intentional

Arcade manages email authentication with SPF, DKIM, and DMARC. The SPF record ends in ~all (SoftFail), while DMARC uses p=reject. Receivers reject unaligned mail that claims to come from arcade.dev. Valimail manages this configuration.

Reports that only recommend -all, DNSSEC, RRSIG, or CAA describe hardening choices, not vulnerabilities. Include a demonstrated security impact if you believe the configuration is exploitable.

Public discovery documents are public

auth.arcade.dev/.well-known/openid-configuration publishes standard OpenID metadata for clients. Its contents are not sensitive, and Arcade does not support dynamic client registration.

A project API key is an administrator credential

Arcade Cloud isolates data by and by project. A is the trust boundary. Everyone with project membership is an administrator. Project administrators and anyone with an share access to that project’s , brokered tokens, and secrets. They can also start authorization for those users. Invite people you trust, and join projects you trust.

A authenticates as the administrator who created it. It can start authorization and read tokens for that project’s by design to support offline and background workloads. A report that uses a project key to read data from the same project describes expected administrator access.

Projects scope user IDs

user_id is an opaque, caller-supplied string. The same value can appear in many projects, but each has its own authorization records. Using ada@example.com in one project does not grant access to records for ada@example.com in another project.

Completing a flow stays in the project that started it

To complete authorization, the user verifier must use an API key from the that started the flow and submit the same user_id supplied at the start. The ID does not travel through the browser redirect.

A custom auth provider replaces the platform provider for your tenant

You can add an whose ID matches a platform provider, such as google. Your provider then handles authorization for your , and its client ID appears in the authorization URL. The identity provider still validates the client and redirect URI.

A broken provider configuration can disrupt that ’s . This reflects expected administrator access, not a cross-tenant outage.

Default OAuth apps follow project membership

Arcade’s default OAuth apps work with the Arcade user verifier. The verifier asks the end user to sign in to an Arcade that is a member of the . Membership means the project may act for that account on connectors that use the default app.

A default-app token can appear in a second project only when that Arcade is also a member of the second . Project membership is a trust relationship.

For a multi- production app, add your own OAuth client and a custom user verifier. Default apps fit development and single- use.

Read Confused deputy attacks on OAuth  for a related consent-binding issue and Arcade’s control.

Secret names are public

Platform secret names are public so customers can replace defaults with their own values.

A response that returns secret values, or another ’s secret material, is a different finding. Send that.

Health-check tokens authenticate the health check

Worker health checks use a credential limited to that check. Steady-state calls use a secret for the worker deployment.

Include evidence that the token succeeds on a real worker request or reaches another ’s data.

Plan limits are soft

Arcade uses soft plan limits and allows overages. Exceeding a listed limit does not indicate an authorization bypass.

Archived examples

Archived example repositories are samples. A static scan of an archived repo, with no impact on Arcade Cloud, is outside this program.

Files on a developer laptop

The Arcade CLI stores credentials on the machine where it runs. A local file-permission finding must expose another ’s data or affect Arcade Cloud to fit this program.

Last updated on