GIVE YOUR AGENT THE EVIDENCE

Set up in your agent.

One prompt to get started. Paste it into your coding agent to connect cve.new through MCP and bring vulnerability context into your workflow.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

GIVE YOUR AGENT THE EVIDENCE

Investigate in your agent.

Turn this advisory into a focused investigation. Ask your agent to check your project’s versions, explain the evidence, and suggest a compatible fix.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

All vulnerabilities
GHSA-hmr5-2xcr-v8pplow1.2

Symfony Vulnerable to stored XSS in WebProfiler CodeExtension::fileExcerpt() — Unescaped Non-PHP File Rendering

Check your stack

The advisory, in context

Description

Symfony's profiler, a development only debug UI, renders source-code excerpts on several pages using Twig's custom file_excerpt filter. This filter renders PHP files via highlight_string() (which escapes HTML), but renders non-PHP files by splitting on \n and interpolating each line directly into <code>{$line}</code> with no escaping.

An attacker who can write arbitrary bytes into any file under the project root (including e.g. var/log/dev.log), achieves stored XSS against any developer who later opens that file in the profiler.

Resolution

The file_excerpt filter now properly escapes each line of non-PHP files using htmlspecialchars() before concatenating them.

The patch for this issue is available here for branch 6.4.

Credits

Symfony would like to thank Claude Mythos Preview (via Project Glasswing) for reporting the issue and providing the fix.

Affected packages

Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.

Ecosystem versions

From 6.4.24 before 6.4.40

Fixed in 6.4.40

16 explicitly affected versions

v6.4.24, v6.4.25, v6.4.26, v6.4.27, v6.4.28, v6.4.29, v6.4.30, v6.4.31, v6.4.32, v6.4.33, v6.4.34, v6.4.35, v6.4.36, v6.4.37, v6.4.38, v6.4.39

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "6.4.24"
        },
        {
          "fixed": "6.4.40"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "versions": [
    "v6.4.24",
    "v6.4.25",
    "v6.4.26",
    "v6.4.27",
    "v6.4.28",
    "v6.4.29",
    "v6.4.30",
    "v6.4.31",
    "v6.4.32",
    "v6.4.33",
    "v6.4.34",
    "v6.4.35",
    "v6.4.36",
    "v6.4.37",
    "v6.4.38",
    "v6.4.39"
  ]
}
Ecosystem versions

From 7.2.9 before 7.4.12

Fixed in 7.4.12

33 explicitly affected versions

v7.2.9, v7.3.0, v7.3.0-BETA1, v7.3.0-BETA2, v7.3.0-RC1, v7.3.1, v7.3.10, v7.3.11, v7.3.2, v7.3.3, v7.3.4, v7.3.5, v7.3.6, v7.3.7, v7.3.8, v7.3.9, v7.4.0, v7.4.0-BETA1, v7.4.0-BETA2, v7.4.0-RC1, v7.4.0-RC2, v7.4.0-RC3, v7.4.1, v7.4.10, v7.4.11, v7.4.2, v7.4.3, v7.4.4, v7.4.5, v7.4.6, v7.4.7, v7.4.8, v7.4.9

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "7.2.9"
        },
        {
          "fixed": "7.4.12"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "versions": [
    "v7.2.9",
    "v7.3.0",
    "v7.3.0-BETA1",
    "v7.3.0-BETA2",
    "v7.3.0-RC1",
    "v7.3.1",
    "v7.3.10",
    "v7.3.11",
    "v7.3.2",
    "v7.3.3",
    "v7.3.4",
    "v7.3.5",
    "v7.3.6",
    "v7.3.7",
    "v7.3.8",
    "v7.3.9",
    "v7.4.0",
    "v7.4.0-BETA1",
    "v7.4.0-BETA2",
    "v7.4.0-RC1",
    "v7.4.0-RC2",
    "v7.4.0-RC3",
    "v7.4.1",
    "v7.4.10",
    "v7.4.11",
    "v7.4.2",
    "v7.4.3",
    "v7.4.4",
    "v7.4.5",
    "v7.4.6",
    "v7.4.7",
    "v7.4.8",
    "v7.4.9"
  ]
}
Ecosystem versions

From 8.0.0 before 8.0.12

Fixed in 8.0.12

12 explicitly affected versions

v8.0.0, v8.0.1, v8.0.10, v8.0.11, v8.0.2, v8.0.3, v8.0.4, v8.0.5, v8.0.6, v8.0.7, v8.0.8, v8.0.9

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "8.0.0"
        },
        {
          "fixed": "8.0.12"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "versions": [
    "v8.0.0",
    "v8.0.1",
    "v8.0.10",
    "v8.0.11",
    "v8.0.2",
    "v8.0.3",
    "v8.0.4",
    "v8.0.5",
    "v8.0.6",
    "v8.0.7",
    "v8.0.8",
    "v8.0.9"
  ]
}
Ecosystem versions

From 6.4.24 before 6.4.40

Fixed in 6.4.40

8 explicitly affected versions

v6.4.24, v6.4.25, v6.4.30, v6.4.31, v6.4.32, v6.4.34, v6.4.35, v6.4.36

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "6.4.24"
        },
        {
          "fixed": "6.4.40"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "versions": [
    "v6.4.24",
    "v6.4.25",
    "v6.4.30",
    "v6.4.31",
    "v6.4.32",
    "v6.4.34",
    "v6.4.35",
    "v6.4.36"
  ]
}
Ecosystem versions

From 7.2.9 before 7.4.12

Fixed in 7.4.12

22 explicitly affected versions

v7.2.9, v7.3.0, v7.3.0-BETA1, v7.3.0-RC1, v7.3.1, v7.3.10, v7.3.2, v7.3.3, v7.3.4, v7.3.5, v7.3.9, v7.4.0, v7.4.0-BETA1, v7.4.0-RC1, v7.4.0-RC3, v7.4.11, v7.4.3, v7.4.4, v7.4.6, v7.4.7, v7.4.8, v7.4.9

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "7.2.9"
        },
        {
          "fixed": "7.4.12"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "versions": [
    "v7.2.9",
    "v7.3.0",
    "v7.3.0-BETA1",
    "v7.3.0-RC1",
    "v7.3.1",
    "v7.3.10",
    "v7.3.2",
    "v7.3.3",
    "v7.3.4",
    "v7.3.5",
    "v7.3.9",
    "v7.4.0",
    "v7.4.0-BETA1",
    "v7.4.0-RC1",
    "v7.4.0-RC3",
    "v7.4.11",
    "v7.4.3",
    "v7.4.4",
    "v7.4.6",
    "v7.4.7",
    "v7.4.8",
    "v7.4.9"
  ]
}
Ecosystem versions

From 8.0.0 before 8.0.12

Fixed in 8.0.12

8 explicitly affected versions

v8.0.0, v8.0.11, v8.0.3, v8.0.4, v8.0.6, v8.0.7, v8.0.8, v8.0.9

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "8.0.0"
        },
        {
          "fixed": "8.0.12"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "versions": [
    "v8.0.0",
    "v8.0.11",
    "v8.0.3",
    "v8.0.4",
    "v8.0.6",
    "v8.0.7",
    "v8.0.8",
    "v8.0.9"
  ]
}

References