---
id: "CVE-2026-125729"
page: "https://infrastack.ai/live/CVE-2026-125729"
kind: "vulnerability"
aliases: ["CVE-2026-125729"]
title: "Plack CSP middleware sends wrong header, so browsers skip policy"
severity: "low"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "Plack::Middleware::CSP", "fixed": [], "affected": "", "ecosystem": "cargo"}]
ecosystems: ["cargo"]
tags: ["package", "perl", "plack", "web-apps"]
not_affected_if: ["not-using-plack-csp", "version-0.03-or-later"]
published_at: "2026-11-10T18:17:35+00:00"
first_seen_at: "2026-11-10T18:22:56+00:00"
updated_at: "2026-11-10T18:26:35+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-125729", "first_seen_at": "2026-11-10T18:22:56+00:00"}]
exploit_sources: []
---

# Plack CSP middleware sends wrong header, so browsers skip policy

Link for people: https://infrastack.ai/live/CVE-2026-125729 (this .md is for agents)

Plack::Middleware::CSP before 0.03 for Perl writes the Content Security Policy into a header named content-security-protocol instead of Content-Security-Policy. Browsers ignore that header, so any cross-site scripting flaw in the wrapped application can run scripts the policy was meant to block.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- cargo:Plack::Middleware::CSP affected range not listed fixed no fixed version listed

## How to check

- Check the installed version of Plack::Middleware::CSP with `perl -MPlack::Middleware::CSP -e 'print $Plack::Middleware::CSP::VERSION'`
- Look for Plack::Middleware::CSP in the cpanfile, cpanfile.snapshot or Makefile.PL of the application
- Inspect a response's headers and confirm whether a Content-Security-Policy header is present

## Fix

- Plack::Middleware::CSP: move to version `0.03` or later (per the advisory, versions before 0.03 are affected)

## Timeline

- 2026-11-10T18:22:56+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-125729

## From the sources

Plack::Middleware::CSP versions before 0.03 for Perl send the Content Security Policy under the wrong header name, so browsers never enforce it.

The call method sets the policy in a response header named "content-security-protocol" instead of "Content-Security-Policy". Browsers ignore that header.

Any cross-site scripting flaw in the wrapped application can run scripts the policy was meant to block.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
