Skip to content
BuildThenTestedSee packages

GitHub Copilot app security: defaults, what breaks, what to check

GitHub Copilot is an AI assistant built into GitHub and IDEs that suggests code, answers questions, reviews pull requests and can work as a coding agent. Below: what it configures by default according to its own documentation (verified 2026-09-21), the 15 patterns most associated with it, the security features the vendor offers and where they stop, and a checklist you can run without buying anything.

GitHub's responsible-use page states generated code may contain vulnerabilities and should be reviewed and tested before merging.

GitHub Copilot suggests and edits code inside your own project and can work as a coding agent in a GitHub Actions environment. It does not choose your stack or host your app. GitHub's responsible-use page states that generated code may contain vulnerabilities and should be reviewed and tested.

The relevant patterns are the ones that show up in generated code across any stack. One Copilot-specific note comes from Snyk's research: the assistant uses open files as context, so an existing flaw can be repeated in new code. Secret scanning, code scanning with Autofix and Copilot code review are GitHub's own tools for the first pass.

What GitHub Copilot sets up by default

Each row is taken from the vendor's documentation on the date shown. Defaults change; the date is the claim.

Defaults of GitHub Copilot as documented by the vendor
AreaDefaultSource
FrontendCopilot suggests and edits code in the developer's own project; it does not choose a stack or host apps. Capabilities depend on plan, client and organization policy.docs · verified 2026-09-21
Coding agent environmentThe cloud coding agent works in an ephemeral GitHub Actions environment, in a single repository and branch, with a 59-minute maximum per task.docs · verified 2026-09-21
Branch and workflow controlsThe agent can only push to the existing PR branch or a new copilot/ branch, never directly to the default branch; Actions workflows triggered by its PRs need approval from a user with write access.docs · verified 2026-09-21
Network accessBy default the coding agent's internet access is limited by a firewall with a recommended allowlist (package registries, container registries, certificate authorities).docs · verified 2026-09-21
Secrets / env varsSecret scanning runs automatically and free on public repositories for hardcoded credentials; private repositories need GitHub Team or Enterprise Cloud with Secret Protection.docs · verified 2026-09-21
Data use for trainingFrom April 24, 2026 GitHub may use Copilot Free, Pro, Pro+ and Max interactions to train models unless the user opts out in settings; Business and Enterprise data is not used for training.docs · verified 2026-09-21

Documentation home: docs.github.com/en/copilot

What breaks in GitHub Copilot apps

52 patterns in the catalogue name GitHub Copilot; the most severe are listed here across secrets and keys, data access, login and permissions, payments. Attribution is descriptive: the default stack makes the pattern reachable, or a public incident names it.

Public incidents

Lovable reported that from 3 February to 20 April 2026 a backend regression let any logged-in Lovable user read the chat history and source code of public projects; a fix shipped within two hours.

  • 2026-02-03 to 2026-04-20 Exposure window
  • 2026-02-22 First HackerOne report
  • about 2 hours Time from public report to fix

Apr 2026 · Lovable · all sources

One education app built on Lovable had 16 vulnerabilities, 6 critical; a database function denied callers whose role was 'authenticated', so anonymous callers passed and 18,697 user records were readable without login.

  • 16 Vulnerabilities found
  • 6 Critical
  • 18,697 User records exposed
  • 14,928 Unique email addresses
  • 870 Enterprise users with full PII

Feb 2026 · Taimur Khan · all sources

A scan of 1,645 Lovable-built apps found 170 (about 10.3%) with database endpoints readable without login because Supabase row-level security policies were missing or too broad; recorded as CVE-2025-48757, CVSS 9.3.

  • 1,645 Apps scanned
  • 170 Apps with inadequate RLS
  • 10.3% Share of scanned apps
  • 303 Exposed endpoints
  • 9.3 Critical CVSS 3.1 base score (CVE record)
  • 8.26 Researcher's own CVSS base score
  • 2025-03-21 Scan date
  • 2025-05-29 Public disclosure

May 2025 · Matt Palmer (Replit, Inc.) · all sources

Moltbook, a social network for AI agents built with AI-generated code, ran a Supabase database without row-level security policies, leaving 1.5 million API tokens and 35,000 email addresses readable and writable without login.

  • 1.5 million API authentication tokens exposed
  • 35,000 Email addresses exposed
  • about 17,000 Human account owners in database
  • 2026-01-31 Reported to maintainer
  • 2026-01-31 (within about 2 hours) First fix applied

Feb 2026 · Wiz Research · all sources

Each entry links to its primary source in the evidence list. What to do about it is the self-check below.

GitHub Copilot's own security features, and where they stop

Stated from the vendor's documentation. The limits are the vendor's scope statements, not judgements.

  • Copilot Autofix for code scanning

    Generates fix suggestions with explanations for CodeQL alerts on pull requests and the default branch; allowed by default for every repository using CodeQL, across nine languages.

    Where it stops: Best-effort: the docs state it may not produce a fix for every finding, may suggest fixes at incorrect locations, and every suggestion needs developer review.

    vendor docs · verified 2026-09-21

  • Copilot code review

    Reviews pull requests in any language for bugs, security vulnerabilities and style issues; available on Business, Enterprise, Pro and Pro+.

    Where it stops: The docs state Copilot can miss problems in a pull request and that its feedback should be supplemented with a human review.

    vendor docs · verified 2026-09-21

  • Coding agent firewall

    Limits outbound internet access from the agent's Actions environment and warns when a request is blocked; allowlists are managed at organization and repository level.

    Where it stops: Applies only to processes started by the agent via Bash inside the Actions environment; does not cover MCP servers or setup steps, and the docs say it is not a comprehensive security solution.

    vendor docs · verified 2026-09-21

  • Content exclusion

    Repository, organization or enterprise settings can list files and paths Copilot should ignore.

    Where it stops: Agent mode in Copilot Chat in IDEs does not support content exclusion; changes can take up to 30 minutes to apply.

    vendor docs · verified 2026-09-21

Check it yourself, in this order

The critical patterns first. Each uses the dashboard and your browser.

NEXT_PUBLIC_ prefix on a secret

  1. In your hosting dashboard (Vercel: Project, Settings, Environment Variables) or your .env files, list every variable whose name starts with NEXT_PUBLIC_.
  2. For each one, ask whether the provider calls that value secret, private, server or admin. Stripe secret keys, model provider keys, database passwords and Supabase service_role keys all fall in that group.
  3. Open the live site in Chrome, right-click, choose Inspect, open the Sources tab and press Ctrl+Shift+F. Search for the first few characters of each suspect value.
  4. A bad result is a NEXT_PUBLIC_ variable holding a server-only key, or a search hit for that key's value in a loaded script.

Secrets committed to the code repository

  1. Open your project on GitHub (or the code view in your builder) and look at the file list for .env, .env.local, .env.production, serviceAccountKey.json or firebase-adminsdk files.
  2. Use the repository search box and search for sk_live, sk-, service_role, BEGIN PRIVATE KEY and password=.
  3. If you have the code on your computer, run one command in the project folder: git log --all -p -S sk_live -- . | head. Any output means a live key has been committed at some point.
  4. On GitHub, open Settings, then Code security, and check whether Secret scanning shows alerts.
  5. A bad result is any env or key file in the file list, any search hit that shows a real key, or an open secret scanning alert.

Service-role key shipped in the browser bundle

  1. Open your live app in Chrome, right-click anywhere and choose Inspect, then open the Sources tab.
  2. Press Ctrl+Shift+F (Cmd+Option+F on a Mac) to search every loaded file. Search for service_role and then for sb_secret_.
  3. Open the Network tab, reload the page, click any request whose address contains supabase.co, and read the apikey header under Request Headers.
  4. In the Supabase dashboard, open Project Settings, then API Keys, and compare that header value with your keys.
  5. A bad result is any search hit, or a header value that matches the service_role or secret key rather than the anon or publishable key.

GitHub Copilot pre-launch checklist

52 checks, in the order we run them. Usable without buying anything.

Self-check tool

Answer questions about your app and get the patterns that apply, ordered by severity. Runs in your browser; nothing is sent.

Run the self-check

Packages for GitHub Copilot apps

Pre-launch check

Start here

For founders about to let real users in.

$490

Report in 48 hours
  • Keys and secrets in the browser or repo
  • Who can read and change whose data
  • Login, roles and admin routes
  • Errors, retries and rate limits
  • Debug mode, headers, deploy path

What you receive

Security sweep

For anyone who wants the three riskiest areas checked fast.

$290

Report in 24 hours
  • API keys and secrets in the bundle
  • Row-level rules on every table
  • Cross-user data reads
  • Admin and hidden routes
  • Client-only permission checks

What you receive

All packages and prices. Every report includes a re-check after your fixes.

Questions about GitHub Copilot

github copilot security review

We test the application Copilot helped write: permission checks, secrets, database rules, payments and error handling, from the outside with two accounts and from the repository. GitHub's code scanning and Copilot code review catch known patterns in the diff; a running test catches logic that is wrong for your app.

copilot generated code vulnerabilities

Research on the evidence page measured higher rates of security issues in AI co-authored changes in the samples studied, and Snyk showed Copilot repeating a flaw from a neighbouring file. Neither means your code is broken; both mean the flows that matter deserve a test before launch.

copilot security

GitHub documents secret scanning, Dependabot, code scanning with Copilot Autofix, a firewall for the coding agent and content exclusion. Turn on secret scanning and Dependabot at minimum, then test the running app.