Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. @grackle-ai/server
  4. ›
  5. GHSA-7q9x-8g6p-3x75

GHSA-7q9x-8g6p-3x75: @grackle-ai/server: Unescaped Error String in renderPairingPage() HTML Template

March 25, 2026

The renderPairingPage() function embeds the error parameter directly into HTML without escaping:

const errorHtml = error ? `<p style="color:#e74c3c">${error}</p>` : "";

All current call sites pass hardcoded strings, so this is not exploitable today. However, the function is architecturally fragile — if a future code change passes user-controlled or dynamic content into the error parameter, it would create an XSS vulnerability.

The renderAuthorizePage() function in the same file correctly uses escapeHtml() for dynamic content, making this an inconsistency.

Affected code:

  • packages/server/src/index.ts:64-89 — renderPairingPage() with unescaped error interpolation
  • Compare: packages/server/src/index.ts:130 — renderAuthorizePage() correctly uses escapeHtml()

References

  • github.com/advisories/GHSA-7q9x-8g6p-3x75
  • github.com/nick-pape/grackle
  • github.com/nick-pape/grackle/security/advisories/GHSA-7q9x-8g6p-3x75

Code Behaviors & Features

Detect and mitigate GHSA-7q9x-8g6p-3x75 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 0.70.1

Fixed versions

  • 0.70.1

Solution

Upgrade to version 0.70.1 or above.

Impact 5.4 MEDIUM

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N

Learn more about CVSS

Weakness

  • CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Source file

npm/@grackle-ai/server/GHSA-7q9x-8g6p-3x75.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 09 May 2026 12:18:40 +0000.