5.1 MEDIUM
- CVSS version (CVSS): 4.0
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Attack Requirement (AT): None (N)
- Privileges Required (PR): Low (L)
- User Interaction (UI): Passive (P)
- Vulnerable System Impact Confidentiality (VC): None (N)
- Vulnerable System Impact Integrity (VI): None (N)
- Vulnerable System Impact Availability (VA): None (N)
- Subsequent System Impact Confidentiality (SC): None (N)
- Subsequent System Impact Integrity (SI): Low (L)
- Subsequent System Impact Availability (SA): Low (L)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Attack Requirement (MAT): None (N)
- Modified Privileges Required (MPR): Low (L)
- Modified User Interaction (MUI): Passive (P)
- Modified Vulnerable System Impact Confidentiality (MVC): None (N)
- Modified Vulnerable System Impact Integrity (MVI): None (N)
- Modified Vulnerable System Impact Availability (MVA): None (N)
- Modified Subsequent System Impact Confidentiality (MSC): Negligible (N)
- Modified Subsequent System Impact Integrity (MSI): Low (L)
- Modified Subsequent System Impact Availability (MSA): Low (L)
- Safety (S): Not Defined (X)
- Automatable (AU): Not Defined (X)
- Recovery (R): Not Defined (X)
- Value Density (V): Not Defined (X)
- Vulnerability Response Effort (RE): Not Defined (X)
- Provider Urgency (U): Not Defined (X)
- Confidentiality Req. (CR): Not Defined (X)
- Integrity Req. (IR): Not Defined (X)
- Availability Req. (AR): Not Defined (X)
- Exploit Maturity (E): Not Defined (X)
by @LeSuisse Activity log
- Created suggestion
- @LeSuisse dismissed (not in Nixpkgs)
MCP Registry: Stored XSS in catalogue UI via attribute-quote breakout in publisher-controlled `websiteUrl`
The MCP Registry provides MCP clients with a list of MCP servers, like an app store for MCP servers. Prior to 1.7.7, the public catalogue UI served at GET / (file internal/api/handlers/v0/ui_index.html) is vulnerable to stored cross-site scripting via the server.websiteUrl field of any published server.json. Server-side validation in internal/validators/validators.go (validateWebsiteURL) only checks that the URL parses, is absolute, and uses the https scheme; it does not reject quote characters. Client-side, the value is interpolated into a double-quoted href attribute via innerHTML, using a homegrown escapeHtml helper that performs the standard textContent → innerHTML round-trip. Per the HTML serialisation algorithm, that round-trip encodes only &, <, > and U+00A0 inside text nodes — it does not encode " or '. A literal " in websiteUrl therefore breaks out of the href attribute, allowing arbitrary on* event handlers to be appended to the same <a> element. The Content-Security-Policy on / is script-src 'self' 'unsafe-inline' https://cdn.tailwindcss.com, so the injected event handlers execute. Any user able to obtain a publish token (e.g. via POST /v0/auth/github-at with their own GitHub account, or POST /v0/auth/none on a deployment that has anonymous auth enabled) can plant a poisoned record visible to every visitor of the registry homepage. This vulnerability is fixed in 1.7.7.
References
Affected products
- ==< 1.7.7
Matching in nixpkgs
pkgs.crane
Tools for interacting with remote images and registries including crane and gcrane
pkgs.gcrane
Tools for interacting with remote images and registries including crane and gcrane
pkgs.cargo-local-registry
Cargo subcommand to manage local registries
pkgs.dn42-registry-wizard
Collection of tools to interact with DN42 registry data
pkgs.go-containerregistry
Tools for interacting with remote images and registries including crane and gcrane
pkgs.haskellPackages.registry
data structure for assembling components
pkgs.gitlab-container-registry
GitLab Docker toolset to pack, ship, store, and deliver content
pkgs.haskellPackages.registry-aeson
Aeson encoders / decoders
pkgs.python312Packages.axisregistry
Google Fonts registry of OpenType variation axis tags
pkgs.python313Packages.axisregistry
Google Fonts registry of OpenType variation axis tags
pkgs.python314Packages.axisregistry
Google Fonts registry of OpenType variation axis tags
pkgs.perlPackages.ParseWin32Registry
Module for parsing Windows Registry files
-
nixos-unstable ParseWin32Registry-1.1
- nixpkgs-unstable ParseWin32Registry-1.1
- nixos-unstable-small ParseWin32Registry-1.1
-
nixos-25.11 ParseWin32Registry-1.1
- nixos-25.11-small ParseWin32Registry-1.1
- nixpkgs-25.11-darwin ParseWin32Registry-1.1
pkgs.perl5Packages.ParseWin32Registry
Module for parsing Windows Registry files
-
nixos-unstable ParseWin32Registry-1.1
- nixpkgs-unstable ParseWin32Registry-1.1
- nixos-unstable-small ParseWin32Registry-1.1
pkgs.haskellPackages.registry-hedgehog
utilities to work with Hedgehog generators and `registry`
pkgs.python312Packages.python-registry
Module to parse the Windows Registry hives
pkgs.python313Packages.python-registry
Module to parse the Windows Registry hives
pkgs.python314Packages.python-registry
Module to parse the Windows Registry hives
pkgs.perl538Packages.ParseWin32Registry
Module for parsing Windows Registry files
-
nixos-25.11 ParseWin32Registry-1.1
- nixos-25.11-small ParseWin32Registry-1.1
- nixpkgs-25.11-darwin ParseWin32Registry-1.1
pkgs.perl540Packages.ParseWin32Registry
Module for parsing Windows Registry files
-
nixos-25.11 ParseWin32Registry-1.1
- nixos-25.11-small ParseWin32Registry-1.1
- nixpkgs-25.11-darwin ParseWin32Registry-1.1
pkgs.python312Packages.phx-class-registry
Factory and registry pattern for Python classes
pkgs.python313Packages.phx-class-registry
Factory and registry pattern for Python classes
pkgs.python314Packages.phx-class-registry
Factory and registry pattern for Python classes
pkgs.haskellPackages.registry-hedgehog-aeson
Hedgehog generators for Aeson
pkgs.python313Packages.json-handler-registry
Registry for JSON handlers
pkgs.python314Packages.json-handler-registry
Registry for JSON handlers
pkgs.python312Packages.azure-containerregistry
Microsoft Azure Container Registry client library for Python
pkgs.python313Packages.azure-containerregistry
Microsoft Azure Container Registry client library for Python
pkgs.python314Packages.azure-containerregistry
Microsoft Azure Container Registry client library for Python
pkgs.python312Packages.azure-mgmt-containerregistry
Microsoft Azure Container Registry Client Library for Python
pkgs.python313Packages.azure-mgmt-containerregistry
Microsoft Azure Container Registry Client Library for Python
pkgs.python314Packages.azure-mgmt-containerregistry
Microsoft Azure Container Registry Client Library for Python
pkgs.python312Packages.google-cloud-artifact-registry
Google Cloud Artifact Registry API client library
pkgs.python313Packages.google-cloud-artifact-registry
Google Cloud Artifact Registry API client library
pkgs.python314Packages.google-cloud-artifact-registry
Google Cloud Artifact Registry API client library
pkgs.haskellPackages.amazonka-servicecatalog-appregistry
Amazon Service Catalog App Registry SDK
-
nixos-unstable 2.0-unstable-2025-04-16
- nixpkgs-unstable 2.0-unstable-2025-04-16
- nixos-unstable-small 2.0-unstable-2025-04-16
-
nixos-25.11 2.0-unstable-2025-04-16
- nixos-25.11-small 2.0-unstable-2025-04-16
- nixpkgs-25.11-darwin 2.0-unstable-2025-04-16
pkgs.python313Packages.azure-mgmt-containerregistrytasks
Microsoft Azure Container Registry Tasks Client Library for Python
pkgs.python314Packages.azure-mgmt-containerregistrytasks
Microsoft Azure Container Registry Tasks Client Library for Python
pkgs.python312Packages.keyrings-google-artifactregistry-auth
Python package which allows you to configure keyring to interact with Python repositories stored in Artifact Registry
pkgs.python312Packages.mypy-boto3-servicecatalog-appregistry
Type annotations for boto3 servicecatalog-appregistry
-
nixos-25.11 boto3-servicecatalog-appregistry-1.41.0
- nixos-25.11-small boto3-servicecatalog-appregistry-1.41.0
- nixpkgs-25.11-darwin boto3-servicecatalog-appregistry-1.41.0
pkgs.python313Packages.keyrings-google-artifactregistry-auth
Python package which allows you to configure keyring to interact with Python repositories stored in Artifact Registry
pkgs.python313Packages.mypy-boto3-servicecatalog-appregistry
Type annotations for boto3 servicecatalog-appregistry
-
nixos-unstable boto3-servicecatalog-appregistry-1.43.0
- nixpkgs-unstable boto3-servicecatalog-appregistry-1.43.0
- nixos-unstable-small boto3-servicecatalog-appregistry-1.43.0
-
nixos-25.11 boto3-servicecatalog-appregistry-1.41.0
- nixos-25.11-small boto3-servicecatalog-appregistry-1.41.0
- nixpkgs-25.11-darwin boto3-servicecatalog-appregistry-1.41.0
pkgs.python314Packages.keyrings-google-artifactregistry-auth
Python package which allows you to configure keyring to interact with Python repositories stored in Artifact Registry
pkgs.python314Packages.mypy-boto3-servicecatalog-appregistry
Type annotations for boto3 servicecatalog-appregistry
-
nixos-unstable boto3-servicecatalog-appregistry-1.43.0
- nixpkgs-unstable boto3-servicecatalog-appregistry-1.43.0
- nixos-unstable-small boto3-servicecatalog-appregistry-1.43.0
pkgs.python312Packages.types-aiobotocore-servicecatalog-appregistry
Type annotations for aiobotocore servicecatalog-appregistry
Package maintainers
-
@ryan4yin Ryan Yin <xiaoyin_c@qq.com>
-
@yurrriq Eric Bailey <eric@ericb.me>
-
@Defelo Defelo
-
@talyz Kim Lindberger <kim.lindberger@gmail.com>
-
@snue Stefan Nuernberger <kabelfrickler@gmail.com>
-
@leona-ya Leona Maroni <nix@leona.is>
-
@yayayayaka Yaya <github@uwu.is>
-
@xanderio Alexander Sieg <alex@xanderio.de>
-
@globin Robin Gloster <mail@glob.in>
-
@krav Kristoffer Thømt Ravneberg <kristoffer@microdisko.no>
-
@e1mo Nina Fromm <nixpkgs@e1mo.de>
-
@danc86 Dan Callaghan <djc@djc.id.au>
-
@peterromfeldhk Peter Romfeld <peter.romfeld.hk@gmail.com>
-
@samuela Samuel Ainsworth <skainsworth@gmail.com>
-
@lovesegfault Bernardo Meurer <meurerbernardo@gmail.com>
-
@mbalatsko Maksym Balatsko <mbalatsko@gmail.com>
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>
-
@hrdinka Christoph Hrdinka <c.nix@hrdinka.at>