MCP Scanner
ScanLeaderboardDocsSign in
Home/wong2/mcp-cli/Results
55D

mcp-cli

wong2/mcp-cli

9 files · 12 findings

Share GitHub SARIF JSON
1 high10 medium1 low
Tool Poisoningclean
Command Injectionclean
Path Traversalclean
SSRF1 issue
Credential Theftclean
Excessive Permissionsclean
Missing Auth9 issues
Supply Chain
SSRF1

Request to localhost or loopback address

high

Requests targeting 127.0.0.1, localhost, or [::1] may access internal services not intended to be exposed.

src/mcp.js:260
const oauthRedirectUrl = `http://127.0.0.1:${oauthConfig.port}${oauthConfig.path}`
How to fix

Block requests to localhost and loopback addresses. Implement URL validation that rejects 127.x.x.x and ::1.

Missing Auth9

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/mcp.js:14
import { OAuthCallbackServer } from './oauth/callback.js'
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.

Logging Deficiency1

Console.log in production code

low

Detected console.log() usage in non-test source code. Console.log is not appropriate for production logging as it lacks log levels, structured output, and proper log management.

src/mcp.js:230
console.log(JSON.stringify(result, null, 2))
How to fix

Replace console.log with a structured logging library (e.g., winston, pino) that supports log levels and proper log management.

Insecure Communication1

Missing HSTS headers on HTTP server

medium

An HTTP server is created without configuring Strict-Transport-Security (HSTS) headers. Without HSTS, browsers may allow downgrade attacks from HTTPS to HTTP.

src/oauth/callback.js:21
server = this.app.listen(port, (err) => {
How to fix

Add Strict-Transport-Security headers to your server responses. Use a middleware such as helmet to set HSTS automatically.

clean
Rug Pullclean
Data Exfiltrationclean
Insecure Communication1 issue
Excessive Data Exposureclean
Logging Deficiency1 issue
Runtime Tool Poisoningclean
Shadow MCP Serverclean

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/mcp.js:15
import { McpOAuthClientProvider } from './oauth/provider.js'
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/mcp.js:257
const oauthConfig = { port: await getPort({ port: 49153 }), path: '/oauth/callback' }
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/oauth/provider.js:27
return config.get(`oauth.${this.serverId}.clientInformation`)
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/oauth/provider.js:31
await config.set(`oauth.${this.serverId}.clientInformation`, clientInformation)
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/oauth/provider.js:35
return config.get(`oauth.${this.serverId}.tokens`)
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/oauth/provider.js:39
await config.set(`oauth.${this.serverId}.tokens`, tokens)
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/oauth/provider.js:47
return config.get(`oauth.${this.serverId}.codeVerifier`)
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.

Missing OAuth scope validation

medium

OAuth-protected endpoints that don't validate scopes may allow unauthorized actions.

src/oauth/provider.js:51
await config.set(`oauth.${this.serverId}.codeVerifier`, codeVerifier)
How to fix

Validate OAuth scopes on every endpoint. Check that the token has required permissions.