Scan result  ·  Coding Todo
Coding Todo

Risk

A critical issue, or a lethal-trifecta pattern, was observed on this surface.

githubscanned 4 months ago
Coverage
Minimal
Tests run
2
Findings
2 rules · 2 total
Worst severity
Critical

What ran on this surface

1 category
Supply Chain SecurityMCP08 · MCP10 · ASI042 findings · 0 clean
CriticalD3Typosquatting Risk in Dependenciesconfidence 90%

Observed: Dependency npm:mcp-sdk@unknown is a confirmed typosquat of @modelcontextprotocol/sdk in the CONFIRMED_TYPOSQUATS registr.

Source
External Content
Dependency npm:mcp-sdk@unknown is a confirmed typosquat of @modelcontextprotocol/sdk in th...
Sink
Command Execution
Malicious package `mcp-sdk` executes attacker code in the build environment or at import t...
Mitigation
Input Validation
Lockfiles pin versions but do not pin the spelling of the dependency name. The static anal...
Impact
Remote Code Execution
server-host, exploitability trivial

Fix. Verify dependency names carefully. Check that package names match the intended package exactly. Use lockfiles to prevent supply chain attacks.

CriticalD5Known Malicious or Flagged Packageconfidence 80%

Observed: Dependency npm:mcp-sdk@unknown matches a confirmed malicious-package entry.

Source
External Content
Dependency npm:mcp-sdk@unknown matches a confirmed malicious-package entry. Matched name:...
Sink
Command Execution
Malicious package "mcp-sdk" executes attacker-controlled code at install time (postinstall...
Mitigation
Input Validation
The manifest directly lists the malicious package; no block was in place at resolution tim...
Impact
Remote Code Execution
server-host, exploitability trivial

Fix. Remove the flagged dependency immediately and audit what data or code it accessed. Check your dependency lockfile for when this package was introduced. Report the malicious package to npm/PyPI if not...

Not run on this surface
These rules could not be reached by this scan method. They stay listed and counted, so coverage is never overstated. Each says why it did not run and what would unlock it.
4Live connectionRules whose declared input (live connection) this scan method did not supply.rescan to unlock
109Source codeRules whose declared input (source code) this scan method did not supply.rescan to unlock
69No execution recordNo record that these rules ran on this surface.rescan

Why these stay. The verdict is coverage aware. A clean result would read "Insufficient coverage", not "Safe", precisely because these rules did not run. Hiding them would let a shallow scan look as thorough as a deep one.

How this server was scanned

The method behind this result was not recorded: the scan predates it. How deep it reached is unknown, and is not implied by anything on this page.

Verifiable Findings

Not yet attested

This server has not been scanned with attestation enabled yet.

How to verify this yourself
# Re-run the analyzer on the signed snapshot and recompute the findings digest
curl -s https://mcp-sentinelapi-production.up.railway.app/api/v1/servers/coding-todo/attestation.json > att.json
npx mcp-sentinel verify-scan --attestation att.json

# Prove the attestation is in the public transparency log
curl -s https://mcp-sentinelapi-production.up.railway.app/api/v1/servers/coding-todo/attestation/inclusion.json > incl.json
npx mcp-sentinel transparency verify-inclusion --proof incl.json

Observed behaviorexecuted in sandbox

Declared tool hints vs. what each tool was actually observed to do when executed in our egress-denied sandbox - plus any witnessed tool→tool flow within this one server. This is not cross-server toxic flow, which composes several servers in one config.

Observed behavior not captured for this scan

No observed-behavior record is on file for this server's latest scan.

This is a coverage gap - we did not execute this server’s tools in the sandbox for this scan. It is not a clean result and is not scored as one. To see how observed behavior is rendered when a run does happen, view the illustrative cross-server toxic flow.

Intrinsic here, config-scoped elsewheredual unit

Everything on this page — the verdict, every finding — is Coding Todo assessed on its own. That is its intrinsic posture. Whether it becomes one leg of a cross-server toxic flow is a different, config-scoped question: it depends on which other servers share its client config, and no verdict on this page changes for it.

Deepen this scan

Every link below opens a form prefilled with this server’s details. Nothing runs until you submit.

Coding Todo - security audit · MCP Sentinel