Skip to content

Finding

Content-Security-Policy is not set

If any injected markup reaches a page, the browser has no rule telling it which scripts it is allowed to run.

Last updated September 20, 2026

This week · An afternoon

Why AI-built apps get this

Response headers are written by nobody. Your framework does not add them, your builder does not add them, and your host adds one or two at most. They are the clearest example of a gap that no tool closes on your behalf, which is why almost every app built by a prompt ships without them.

What it affects

If any injected markup reaches a page, the browser has no rule telling it which scripts it is allowed to run.

What the evidence line looks like

GET https://example.com returned no strict-transport-security header

Every finding on a result carries a line like this one: the request that was made and the answer that came back. You can run the same request yourself and get the same answer, which is the point.

The fix

Add a Content-Security-Policy response header, starting from default-src 'self' and adding the domains your app actually loads from.

Prompt for your coding agent

This app sends no Content-Security-Policy header. Add one that starts from default-src 'self' and lists only the sources your app really loads. Roll it out in report-only mode first, watch the browser console on every page, then enforce it.

A result gives you this prompt written for your builder, in its own dialect, and a batch prompt that carries every fix at once.

Incidents that involved this

  • Not verified

    First-quarter 2026 assessment of 200 apps

    183 of 200 vibe-coded apps, 91.5 percent, contained at least one vulnerability traceable to AI hallucination or missing security context.

  • Declared

    CVE growth in AI-generated code

    CVE entries attributed to AI-generated code rose from 6 in January 2026 to more than 35 in March 2026.

  • Observed

    5,600 vibe-coded apps scanned

    More than 2,000 vulnerabilities and more than 400 exposed secrets found across vibe-coded apps.

  • Not verified

    Tenzai study of AI-built apps

    69 vulnerabilities across 15 apps built by five AI coding tools.

Run this check yourself

This page is the explanation of the finding. The free tool runs the same check on your own app and returns the evidence line.

Security headers check

Related terms

Run the free Launch Risk Check on your app

ShipReady is not a penetration test or a security certification. No automated check can prove an application is secure.

Last updated September 20, 2026