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-fmg2-f5r9-24qcmedium6.2

Grav: Stored XSS via page title (data[header][title]) in admin panel

Check your stack

The advisory, in context

Summary

A Stored Cross-Site Scripting (XSS) vulnerability was identified in the /admin/pages/[page] endpoint of the Grav application. This vulnerability allows attackers to inject malicious scripts into the data[header][title] parameter.


Details

Vulnerable Endpoint: GET /admin/pages/[page] Parameter: data[header][title]

The application fails to properly validate and sanitize user input in the data[header][title] parameter. As a result, attackers can craft a malicious URL with an XSS payload. When this URL is accessed, the injected script is reflected back in the HTTP response and executed within the context of the victim's browser session.


PoC

Payload: <img src=1 onerror=alert(1)>

  1. Log in to the Grav Admin Panel and navigate to Pages.

  2. Create a new page or edit an existing one.

  3. Edit title of the page to <img src=1 onerror=alert(1)>

<img width="1897" height="700" alt="image" src="https://github.com/user-attachments/assets/77a129ca-5c2b-4743-8c56-c17fa456eefa" />

  1. Save page

  2. Open the move function and click on the folder having the payload

<img width="1904" height="984" alt="image" src="https://github.com/user-attachments/assets/44f8f88f-76c4-449f-8c4e-11e8e2c51d8f" />

<img width="1902" height="995" alt="image" src="https://github.com/user-attachments/assets/1dc2ef15-e534-4e87-93ea-92bc573af7f1" />


Impact

Stored cross-site scripting (XSS) attacks can have serious consequences, including:

  • User actions: Attackers can perform actions on behalf of the user

  • Data theft: Sensitive information such as session cookies can be stolen

  • Account compromise: Attackers may impersonate legitimate users

  • Malicious code execution: Arbitrary JavaScript code can run in the user’s browser

  • Website defacement or misinformation: Malicious output may be injected visually

  • User redirection: Victims may be redirected to phishing or malicious websites

By Vu Duc Hieu Contributor Simon Tran

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.

getgrav/grav Packagist
Ecosystem versions

Earlier releases before 1.7.49.5

Fixed in 1.7.49.5

284 explicitly affected versions

0.8.0, 0.9.0, 0.9.1, 0.9.10, 0.9.11, 0.9.12, 0.9.13, 0.9.14, 0.9.15, 0.9.16, 0.9.17, 0.9.18, 0.9.19, 0.9.2, 0.9.20, 0.9.21, 0.9.22, 0.9.23, 0.9.24, 0.9.25, 0.9.26, 0.9.27, 0.9.28, 0.9.29, 0.9.3, 0.9.30, 0.9.31, 0.9.32, 0.9.33, 0.9.34, 0.9.35, 0.9.36, 0.9.37, 0.9.38, 0.9.39, 0.9.4, 0.9.40, 0.9.41, 0.9.42, 0.9.43, 0.9.44, 0.9.45, 0.9.5, 0.9.6, 0.9.7, 0.9.8, 0.9.9, 1.0.0, 1.0.0-rc.1, 1.0.0-rc.2, 1.0.0-rc.3, 1.0.0-rc.4, 1.0.0-rc.5, 1.0.0-rc.6, 1.0.1, 1.0.10, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9, 1.1.0, 1.1.0-beta.1, 1.1.0-beta.2, 1.1.0-beta.3, 1.1.0-beta.4, 1.1.0-beta.5, 1.1.0-rc.1, 1.1.0-rc.2, 1.1.0-rc.3, 1.1.1, 1.1.10, 1.1.11, 1.1.12, 1.1.13, 1.1.14, 1.1.15, 1.1.16, 1.1.17, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.7, 1.1.8, 1.1.9, 1.1.9-rc.1, 1.1.9-rc.2, 1.1.9-rc.3, 1.2.0, 1.2.0-rc.1, 1.2.0-rc.2, 1.2.0-rc.3, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.3.0, 1.3.0-rc.1, 1.3.0-rc.2, 1.3.0-rc.3, 1.3.0-rc.4, 1.3.0-rc.5, 1.3.1, 1.3.10, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.3.8, 1.3.9, 1.4.0, 1.4.0-beta.1, 1.4.0-beta.2, 1.4.0-beta.3, 1.4.0-rc.1, 1.4.0-rc.2, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.5.0, 1.5.0-beta.1, 1.5.0-beta.2, 1.5.0-rc.1, 1.5.1, 1.5.10, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.5.6, 1.5.7, 1.5.8, 1.5.9, 1.6.0, 1.6.0-beta.1, 1.6.0-beta.2, 1.6.0-beta.3, 1.6.0-beta.4, 1.6.0-beta.5, 1.6.0-beta.6, 1.6.0-beta.7, 1.6.0-beta.8, 1.6.0-rc.1, 1.6.0-rc.2, 1.6.0-rc.3, 1.6.0-rc.4, 1.6.1, 1.6.10, 1.6.11, 1.6.12, 1.6.13, 1.6.14, 1.6.15, 1.6.16, 1.6.17, 1.6.18, 1.6.19, 1.6.2, 1.6.20, 1.6.21, 1.6.22, 1.6.23, 1.6.24, 1.6.25, 1.6.26, 1.6.27, 1.6.28, 1.6.29, 1.6.3, 1.6.30, 1.6.31, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 1.7.0, 1.7.0-beta.1, 1.7.0-beta.10, 1.7.0-beta.2, 1.7.0-beta.3, 1.7.0-beta.4, 1.7.0-beta.5, 1.7.0-beta.6, 1.7.0-beta.7, 1.7.0-beta.8, 1.7.0-beta.9, 1.7.0-rc.1, 1.7.0-rc.10, 1.7.0-rc.11, 1.7.0-rc.12, 1.7.0-rc.13, 1.7.0-rc.14, 1.7.0-rc.15, 1.7.0-rc.16, 1.7.0-rc.17, 1.7.0-rc.18, 1.7.0-rc.19, 1.7.0-rc.2, 1.7.0-rc.20, 1.7.0-rc.3, 1.7.0-rc.4, 1.7.0-rc.5, 1.7.0-rc.6, 1.7.0-rc.7, 1.7.0-rc.8, 1.7.0-rc.9, 1.7.1, 1.7.10, 1.7.12, 1.7.13, 1.7.14, 1.7.15, 1.7.16, 1.7.17, 1.7.18, 1.7.19, 1.7.20, 1.7.21, 1.7.22, 1.7.23, 1.7.24, 1.7.25, 1.7.26, 1.7.26.1, 1.7.27, 1.7.27.1, 1.7.28, 1.7.29, 1.7.29.1, 1.7.3, 1.7.30, 1.7.31, 1.7.32, 1.7.33, 1.7.34, 1.7.35, 1.7.36, 1.7.37, 1.7.37.1, 1.7.38, 1.7.39, 1.7.39.1, 1.7.39.2, 1.7.39.3, 1.7.39.4, 1.7.4, 1.7.40, 1.7.41, 1.7.41.1, 1.7.41.2, 1.7.42, 1.7.42.1, 1.7.42.2, 1.7.42.3, 1.7.43, 1.7.44, 1.7.45, 1.7.46, 1.7.47, 1.7.48, 1.7.49, 1.7.49.1, 1.7.49.2, 1.7.49.3, 1.7.49.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "0"
        },
        {
          "fixed": "1.7.49.5"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "versions": [
    "0.8.0",
    "0.9.0",
    "0.9.1",
    "0.9.10",
    "0.9.11",
    "0.9.12",
    "0.9.13",
    "0.9.14",
    "0.9.15",
    "0.9.16",
    "0.9.17",
    "0.9.18",
    "0.9.19",
    "0.9.2",
    "0.9.20",
    "0.9.21",
    "0.9.22",
    "0.9.23",
    "0.9.24",
    "0.9.25",
    "0.9.26",
    "0.9.27",
    "0.9.28",
    "0.9.29",
    "0.9.3",
    "0.9.30",
    "0.9.31",
    "0.9.32",
    "0.9.33",
    "0.9.34",
    "0.9.35",
    "0.9.36",
    "0.9.37",
    "0.9.38",
    "0.9.39",
    "0.9.4",
    "0.9.40",
    "0.9.41",
    "0.9.42",
    "0.9.43",
    "0.9.44",
    "0.9.45",
    "0.9.5",
    "0.9.6",
    "0.9.7",
    "0.9.8",
    "0.9.9",
    "1.0.0",
    "1.0.0-rc.1",
    "1.0.0-rc.2",
    "1.0.0-rc.3",
    "1.0.0-rc.4",
    "1.0.0-rc.5",
    "1.0.0-rc.6",
    "1.0.1",
    "1.0.10",
    "1.0.2",
    "1.0.3",
    "1.0.4",
    "1.0.5",
    "1.0.6",
    "1.0.7",
    "1.0.8",
    "1.0.9",
    "1.1.0",
    "1.1.0-beta.1",
    "1.1.0-beta.2",
    "1.1.0-beta.3",
    "1.1.0-beta.4",
    "1.1.0-beta.5",
    "1.1.0-rc.1",
    "1.1.0-rc.2",
    "1.1.0-rc.3",
    "1.1.1",
    "1.1.10",
    "1.1.11",
    "1.1.12",
    "1.1.13",
    "1.1.14",
    "1.1.15",
    "1.1.16",
    "1.1.17",
    "1.1.2",
    "1.1.3",
    "1.1.4",
    "1.1.5",
    "1.1.6",
    "1.1.7",
    "1.1.8",
    "1.1.9",
    "1.1.9-rc.1",
    "1.1.9-rc.2",
    "1.1.9-rc.3",
    "1.2.0",
    "1.2.0-rc.1",
    "1.2.0-rc.2",
    "1.2.0-rc.3",
    "1.2.1",
    "1.2.2",
    "1.2.3",
    "1.2.4",
    "1.3.0",
    "1.3.0-rc.1",
    "1.3.0-rc.2",
    "1.3.0-rc.3",
    "1.3.0-rc.4",
    "1.3.0-rc.5",
    "1.3.1",
    "1.3.10",
    "1.3.2",
    "1.3.3",
    "1.3.4",
    "1.3.5",
    "1.3.6",
    "1.3.7",
    "1.3.8",
    "1.3.9",
    "1.4.0",
    "1.4.0-beta.1",
    "1.4.0-beta.2",
    "1.4.0-beta.3",
    "1.4.0-rc.1",
    "1.4.0-rc.2",
    "1.4.1",
    "1.4.2",
    "1.4.3",
    "1.4.4",
    "1.4.5",
    "1.4.6",
    "1.4.7",
    "1.4.8",
    "1.5.0",
    "1.5.0-beta.1",
    "1.5.0-beta.2",
    "1.5.0-rc.1",
    "1.5.1",
    "1.5.10",
    "1.5.2",
    "1.5.3",
    "1.5.4",
    "1.5.5",
    "1.5.6",
    "1.5.7",
    "1.5.8",
    "1.5.9",
    "1.6.0",
    "1.6.0-beta.1",
    "1.6.0-beta.2",
    "1.6.0-beta.3",
    "1.6.0-beta.4",
    "1.6.0-beta.5",
    "1.6.0-beta.6",
    "1.6.0-beta.7",
    "1.6.0-beta.8",
    "1.6.0-rc.1",
    "1.6.0-rc.2",
    "1.6.0-rc.3",
    "1.6.0-rc.4",
    "1.6.1",
    "1.6.10",
    "1.6.11",
    "1.6.12",
    "1.6.13",
    "1.6.14",
    "1.6.15",
    "1.6.16",
    "1.6.17",
    "1.6.18",
    "1.6.19",
    "1.6.2",
    "1.6.20",
    "1.6.21",
    "1.6.22",
    "1.6.23",
    "1.6.24",
    "1.6.25",
    "1.6.26",
    "1.6.27",
    "1.6.28",
    "1.6.29",
    "1.6.3",
    "1.6.30",
    "1.6.31",
    "1.6.4",
    "1.6.5",
    "1.6.6",
    "1.6.7",
    "1.6.8",
    "1.6.9",
    "1.7.0",
    "1.7.0-beta.1",
    "1.7.0-beta.10",
    "1.7.0-beta.2",
    "1.7.0-beta.3",
    "1.7.0-beta.4",
    "1.7.0-beta.5",
    "1.7.0-beta.6",
    "1.7.0-beta.7",
    "1.7.0-beta.8",
    "1.7.0-beta.9",
    "1.7.0-rc.1",
    "1.7.0-rc.10",
    "1.7.0-rc.11",
    "1.7.0-rc.12",
    "1.7.0-rc.13",
    "1.7.0-rc.14",
    "1.7.0-rc.15",
    "1.7.0-rc.16",
    "1.7.0-rc.17",
    "1.7.0-rc.18",
    "1.7.0-rc.19",
    "1.7.0-rc.2",
    "1.7.0-rc.20",
    "1.7.0-rc.3",
    "1.7.0-rc.4",
    "1.7.0-rc.5",
    "1.7.0-rc.6",
    "1.7.0-rc.7",
    "1.7.0-rc.8",
    "1.7.0-rc.9",
    "1.7.1",
    "1.7.10",
    "1.7.12",
    "1.7.13",
    "1.7.14",
    "1.7.15",
    "1.7.16",
    "1.7.17",
    "1.7.18",
    "1.7.19",
    "1.7.20",
    "1.7.21",
    "1.7.22",
    "1.7.23",
    "1.7.24",
    "1.7.25",
    "1.7.26",
    "1.7.26.1",
    "1.7.27",
    "1.7.27.1",
    "1.7.28",
    "1.7.29",
    "1.7.29.1",
    "1.7.3",
    "1.7.30",
    "1.7.31",
    "1.7.32",
    "1.7.33",
    "1.7.34",
    "1.7.35",
    "1.7.36",
    "1.7.37",
    "1.7.37.1",
    "1.7.38",
    "1.7.39",
    "1.7.39.1",
    "1.7.39.2",
    "1.7.39.3",
    "1.7.39.4",
    "1.7.4",
    "1.7.40",
    "1.7.41",
    "1.7.41.1",
    "1.7.41.2",
    "1.7.42",
    "1.7.42.1",
    "1.7.42.2",
    "1.7.42.3",
    "1.7.43",
    "1.7.44",
    "1.7.45",
    "1.7.46",
    "1.7.47",
    "1.7.48",
    "1.7.49",
    "1.7.49.1",
    "1.7.49.2",
    "1.7.49.3",
    "1.7.49.4",
    "1.7.5",
    "1.7.6",
    "1.7.7",
    "1.7.8",
    "1.7.9"
  ]
}

References