🛡️ CERT-X-GEN Security Scan Report

Scan ID: 60be8e79-14f7-4040-afd2-ebf9fad1853e

📅 2026-03-31 20:03:16 UTC ⏱️ 30.00s duration 🔧 v1.1.0
1
Targets Scanned
13
Templates Executed
9
Total Findings
30.00s
Duration
0
Critical
4
High
2
Medium
3
Low
0
Info

📋 Findings

Full Threat Model Exposed via MCP guardlink_parse

medium
Target
/path/to/guardlink-sample
Template
guardlink-data-exposure-mcp
Confidence
80%
Timestamp
2026-03-31 20:03:19 UTC
Vulnerability IDs
CWE-200
Description: The MCP guardlink_parse tool returns the complete threat model including: exposures (62 entries), mitigations (44 entries), data flows (71 entries), absolute paths (3 found). Any MCP client connected to the server has full visibility into the project's security posture, including known vulnerabilities and their locations.
Evidence Raw output

                    

Unmitigated Vulnerability Details Exposed via MCP

medium
Target
/path/to/guardlink-sample
Template
guardlink-data-exposure-mcp
Confidence
80%
Timestamp
2026-03-31 20:03:19 UTC
Vulnerability IDs
CWE-200
Description: The MCP guardlink_status tool reveals 17 unmitigated exposures (5 critical/high severity) with exact file paths and line numbers. This provides a detailed attack roadmap to any connected MCP client.
Evidence Raw output

                    

MCP Resource Accessible Without Auth: guardlink://model

low
Target
/path/to/guardlink-sample
Template
guardlink-data-exposure-mcp
Confidence
80%
Timestamp
2026-03-31 20:03:19 UTC
Vulnerability IDs
CWE-200
Description: The MCP resource guardlink://model (Full threat model) is accessible without any authentication or authorization check. Response size: 79717 chars.
Evidence Raw output
{
  "version": "1.1.0",
  "project": "unknown",
  "generated_at": "2026-03-31T20:03:18.347Z",
  "source_files": 76,
  "annotations_parsed": 297,
  "annotated_files": [
    ".cxg-test-symlink/external.ts",
    ".guardlink/definitions.ts",
    "src/agents/config.ts",
    "src/agents/index.ts",
    "sr

MCP Resource Accessible Without Auth: guardlink://definitions

low
Target
/path/to/guardlink-sample
Template
guardlink-data-exposure-mcp
Confidence
80%
Timestamp
2026-03-31 20:03:19 UTC
Vulnerability IDs
CWE-200
Description: The MCP resource guardlink://definitions (Asset/threat/control definitions) is accessible without any authentication or authorization check. Response size: 7384 chars.
Evidence Raw output
{
  "assets": [
    {
      "id": "parser",
      "path": "GuardLink.Parser",
      "description": "Reads source files from disk, extracts security annotations using regex patterns"
    },
    {
      "id": "cli",
      "path": "GuardLink.CLI",
      "description": "Command-line interface, handles u

MCP Resource Accessible Without Auth: guardlink://unmitigated

low
Target
/path/to/guardlink-sample
Template
guardlink-data-exposure-mcp
Confidence
80%
Timestamp
2026-03-31 20:03:19 UTC
Vulnerability IDs
CWE-200
Description: The MCP resource guardlink://unmitigated (Unmitigated exposure list) is accessible without any authentication or authorization check. Response size: 2361 chars.
Evidence Raw output
[
  {
    "asset": "App",
    "threat": "#sqli",
    "file": ".cxg-test-symlink/external.ts",
    "line": 1
  },
  {
    "asset": "#llm-client",
    "threat": "#data-exposure",
    "severity": "low",
    "file": "src/analyze/index.ts",
    "line": 12
  },
  {
    "asset": "#llm-client",
    "threat"

MCP Path Traversal via root Parameter (guardlink_parse)

high
Target
/path/to/guardlink-sample
Template
guardlink-path-traversal-mcp
Confidence
85%
Timestamp
2026-03-31 20:03:20 UTC
Vulnerability IDs
CWE-22
Description: The MCP server accepted root='/etc' and returned data from outside the project directory. An MCP client can read arbitrary directory contents through the parse tool.
Evidence Raw output
EACCES: permission denied, scandir '/etc/cups/certs'

MCP Path Traversal via root Parameter (guardlink_status)

high
Target
/path/to/guardlink-sample
Template
guardlink-path-traversal-mcp
Confidence
85%
Timestamp
2026-03-31 20:03:20 UTC
Vulnerability IDs
CWE-22
Description: The MCP server accepted root='/etc' in guardlink_status and returned status data for files outside the project.
Evidence Raw output
EACCES: permission denied, scandir '/etc/cups/certs'

MCP Arbitrary File Write via Report Output Path

high
Target
/path/to/guardlink-sample
Template
guardlink-path-traversal-mcp
Confidence
85%
Timestamp
2026-03-31 20:03:20 UTC
Vulnerability IDs
CWE-22
Description: The MCP guardlink_report tool wrote a file to /var/folders/zn/h5q5_5155fzcq32ddvgz2v0r0000gn/T/guardlink-cxg-mcp-266fkcf_/stolen-report.md outside the project root by manipulating the output parameter.
Evidence Raw output

                    

Symlink Escape in guardlink clear

high
Target
/path/to/guardlink-sample
Template
guardlink-parser-arbitrary-write
Confidence
80%
Timestamp
2026-03-31 20:03:46 UTC
Vulnerability IDs
CWE-73
Description: The 'guardlink clear' command follows symlinks and would modify files outside the project root. External file '/var/folders/zn/h5q5_5155fzcq32ddvgz2v0r0000gn/T/cxg-arb-write-7lyia0j6/external.ts' was included in the clear operation via a symlink.
Evidence Raw output
Found 294 annotation line(s) across 39 file(s):

  .cxg-test-symlink/external.ts  (1 line)
  src/agents/config.ts  (10 lines)
  src/agents/index.ts  (2 lines)
  src/agents/launcher.ts  (11 lines)
  src/agents/prompts.ts  (62 lines)
  src/analyzer/index.ts  (2 lines)
  src/analyzer/sarif.ts  (5 lines)
  src/cli/index.ts  (12 lines)
  src/dashboard/generate.ts  (8 lines)
  src/dashboard/index.ts  (4 lines)
  src/diff/git.ts  (10 lines)
  src/diff/index.ts  (3 lines)
  src/init/detect.ts  (4 lines)
  src/init/index.ts  (10 lines)
  src/analyze/index.ts  (10 lines)
  src/analyze/llm.ts  (11 lines)
  src/analyze/prompts.ts  (2 lines)
  src/analyze/tools.ts  (10 lines)
  src/mcp/index.ts  (4 lines)
  src/mcp/lookup.ts  (4 lines)
  src/mcp/server.ts  (16 lines)
  src/mcp/suggest.ts  (9 lines)
  src/parser/clear.ts  (7 lines)
  src/parser/parse-file.ts  (5 lines)
  src/parser/parse-line.ts  (3 lines)
  src/parser/parse-project.ts  (7 lines)
  src/report/index.ts  (2 lines)
  src/report/report