[Security] SQL Injection Vulnerability in ListTableTool.ts (MssqlMcp/Node/src/tools)
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 52/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- node.js, sql, typescript
Piste de recherche
Commencez par MssqlMcp/Node/src/tools/ListTableTool.ts et examinez la méthode run(), en particulier la manière dont le tableau parameters est utilisé pour construire le filtre schema. Reproduisez l’entrée malveillante fournie sur l’exemple, puis vérifiez que les valeurs de schema ne peuvent pas modifier la requête et que l’énumération normale des tables fonctionne toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
The ListTableTool class in the Node.js MCP sample is vulnerable to SQL injection attacks due to unsanitized user input being directly interpolated into a dynamic SQL query. This affects the run() method when filtering by schemas via the parameters array.
Affected File: MssqlMcp/Node/src/tools/ListTableTool.ts
Steps to Reproduce
- Instantiate the
ListTableTooland callrun()with malicious input:{ "parameters": ["dbo'; SELECT name FROM sys.databases --"] }
query becomes:
SELECT TABLE_SCHEMA + '.' + TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA IN ('dbo'; SELECT name FROM sys.databases --') ORDER BY TABLE_SCHEMA, TABLE_NAME
- Langage dominant
- HTML
- Étoiles
- 331
- Forks
- 209
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Azure-Samples/SQL-AI-samples
-
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
Azure-Samples/SQL-AI-samples#90 · 1 commentaire ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 30/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
Azure-Samples/SQL-AI-samples#79 · 6 réactions ·
-
Local dbOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Toutes les issues de Azure-Samples/SQL-AI-samples
Issues similaires
-
effort: low prio: low ready
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
digitalfabrik/integreat-cms#4616 ·
Les mainteneurs répondent en général sous 5 jours
-
refactor topic-map
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
Add an EPUB parserOuvertearea: core good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
openapi/gknowledge#21 ·
-
get() for StrEnumPeut-être pris @FeJo5952 l’a pris aujourd’hui. Ouvertegood first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
collective/icalendar#1921 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
ETQ admin, le select de condition d'une annotation répétable liste les champs publics deux foisOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
demarche-numerique/demarche.numerique.gouv.fr#14301 ·
Les mainteneurs répondent en général sous 1 jour