{
  "executive_summary": {
    "badge": "Unsafe",
    "security_score": 39.88,
    "view": "composite",
    "scanner_badges": {
      "agentshield": "Verified",
      "cisco-skill-scanner": "Unsafe",
      "agent-audit-kit": "Caution",
      "bearer": "Verified",
      "nerlo-behavioral": "Verified",
      "nerlo-install-instruction": "Verified",
      "trivy": "Unsafe",
      "osv-scanner": "Unsafe"
    },
    "finding_counts": {
      "critical": 0,
      "high": 23,
      "medium": 60,
      "low": 13
    },
    "recommendation": "local-history-mcp is NOT recommended for integration: the scan surfaced 0 critical and 23 high-severity findings. Treat the Per-Scanner Detail section as a remediation worklist and re-scan before reconsidering."
  },
  "source_provenance": {
    "repository_url": "https://github.com/xxczaki/local-history-mcp",
    "commit_sha_scanned": null,
    "license": "MIT",
    "maintainer": "Antoni K\u0119pi\u0144ski",
    "name": "local-history-mcp",
    "version": "1.1.2"
  },
  "per_scanner_detail": [
    {
      "scanner_name": "agentshield",
      "scanner_version": "1.4.0",
      "score": 100.0,
      "scanner_badge": "Verified",
      "findings": [],
      "execution_duration_seconds": 5.114046843998949,
      "status": "complete",
      "metadata": {
        "source": "npm",
        "source_url": "https://www.npmjs.com/package/ecc-agentshield",
        "install_command": "npm install -g ecc-agentshield@1.4.0",
        "scans_performed": [
          "supply_chain"
        ]
      },
      "display_score": 100.0,
      "display_badge": "Verified"
    },
    {
      "scanner_name": "cisco-skill-scanner",
      "scanner_version": "2.0.11",
      "score": 15.5,
      "scanner_badge": "Unsafe",
      "findings": [
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "high",
          "category": "policy_violation",
          "file_path": "/repo",
          "line_number": null,
          "rule_identifier": "LOW_ANALYZABILITY",
          "title": "Critically low analyzability score",
          "description": "Only 70% of skill content could be analyzed. 6 of 23 files are opaque to the scanner. The safety assessment has low confidence.",
          "remediation": "Replace opaque files (binaries, encrypted content) with inspectable source code to improve scan confidence."
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "low",
          "category": "obfuscation",
          "file_path": "/repo/.changeset/README.md",
          "line_number": null,
          "rule_identifier": "HIDDEN_DATA_FILE",
          "title": "Hidden data file detected",
          "description": "Hidden file found: .changeset/README.md. Hidden files may contain concealed configuration or data that should be reviewed.",
          "remediation": "Move file to a visible location or document its purpose."
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "low",
          "category": "obfuscation",
          "file_path": "/repo/.changeset/config.json",
          "line_number": null,
          "rule_identifier": "HIDDEN_DATA_FILE",
          "title": "Hidden data file detected",
          "description": "Hidden file found: .changeset/config.json. Hidden files may contain concealed configuration or data that should be reviewed.",
          "remediation": "Move file to a visible location or document its purpose."
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "low",
          "category": "social_engineering",
          "file_path": "/repo/SKILL.md",
          "line_number": null,
          "rule_identifier": "SOCIAL_ENG_VAGUE_DESCRIPTION",
          "title": "Vague skill description",
          "description": "Skill description is too short (16 chars). Provide detailed explanation.",
          "remediation": "Provide a clear, detailed description of what the skill does and when to use it"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "informational",
          "category": "policy_violation",
          "file_path": "/repo/SKILL.md",
          "line_number": null,
          "rule_identifier": "MANIFEST_MISSING_LICENSE",
          "title": "Skill does not specify a license",
          "description": "Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.",
          "remediation": "Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "high",
          "category": "data_exfiltration",
          "file_path": "/repo/src/history-parser.ts",
          "line_number": 149,
          "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
          "title": "Node.js filesystem access that could read or write sensitive data",
          "description": "Pattern detected: fs.readFileSync(",
          "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "high",
          "category": "data_exfiltration",
          "file_path": "/repo/src/history-parser.ts",
          "line_number": 188,
          "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
          "title": "Node.js filesystem access that could read or write sensitive data",
          "description": "Pattern detected: fs.readFileSync(",
          "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "high",
          "category": "data_exfiltration",
          "file_path": "/repo/src/index.ts",
          "line_number": 430,
          "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
          "title": "Node.js filesystem access that could read or write sensitive data",
          "description": "Pattern detected: fs.writeFileSync(",
          "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "high",
          "category": "data_exfiltration",
          "file_path": "/repo/src/index.ts",
          "line_number": 445,
          "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
          "title": "Node.js filesystem access that could read or write sensitive data",
          "description": "Pattern detected: fs.writeFileSync(",
          "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "low",
          "category": "social_engineering",
          "file_path": "/repo/.changeset/SKILL.md",
          "line_number": null,
          "rule_identifier": "SOCIAL_ENG_VAGUE_DESCRIPTION",
          "title": "Vague skill description",
          "description": "Skill description is too short (16 chars). Provide detailed explanation.",
          "remediation": "Provide a clear, detailed description of what the skill does and when to use it"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "informational",
          "category": "policy_violation",
          "file_path": "/repo/.changeset/SKILL.md",
          "line_number": null,
          "rule_identifier": "MANIFEST_INVALID_NAME",
          "title": "Skill name does not follow agent skills naming rules",
          "description": "Skill name '.changeset' is invalid. Agent skills require lowercase letters, numbers, and hyphens only, with a maximum length of 64 characters.",
          "remediation": "Rename the skill to match `[a-z0-9-]{1,64}` (e.g., 'pdf-processing')"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "informational",
          "category": "policy_violation",
          "file_path": "/repo/.changeset/SKILL.md",
          "line_number": null,
          "rule_identifier": "MANIFEST_MISSING_LICENSE",
          "title": "Skill does not specify a license",
          "description": "Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.",
          "remediation": "Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)"
        }
      ],
      "execution_duration_seconds": 38.53451306201168,
      "status": "complete",
      "metadata": {
        "source": "pypi",
        "source_url": "https://pypi.org/project/cisco-ai-skill-scanner/2.0.11/",
        "report_type": "cisco-skill-sast",
        "analyzers_used": [
          "bytecode",
          "pipeline",
          "static_analyzer"
        ],
        "skills_scanned": [
          "repo",
          ".changeset"
        ],
        "install_command": "pip install --require-hashes -r docker/scanner-base/cisco-skill-scanner/requirements.txt",
        "severity_counts": {
          "low": 4,
          "high": 5,
          "medium": 0,
          "critical": 0,
          "informational": 3
        }
      },
      "display_score": 15.5,
      "display_badge": "Unsafe"
    },
    {
      "scanner_name": "agent-audit-kit",
      "scanner_version": "0.3.26",
      "score": 63.0,
      "scanner_badge": "Caution",
      "findings": [
        {
          "tool_name": "agent-audit-kit",
          "severity": "low",
          "category": "supply-chain",
          "file_path": "SECURITY.md",
          "line_number": null,
          "rule_identifier": "AAK-SEC-MD-001",
          "title": "MCP server repo missing SECURITY.md or security_contact",
          "description": "A repository whose name or pyproject keywords declare it as an MCP server ships without a top-level SECURITY.md AND without a `security_contact` entry in marketplace.json / pyproject.toml / package.json. Anthropic's April 2026 SECURITY.md guidance makes this the baseline expectation so researchers have a channel.",
          "remediation": "Add SECURITY.md at the repo root with a disclosure email and response SLA; OR add `security_contact` to the project manifest."
        },
        {
          "tool_name": "agent-audit-kit",
          "severity": "medium",
          "category": "supply-chain",
          "file_path": "package.json",
          "line_number": 47,
          "rule_identifier": "AAK-OAUTH-3P-001",
          "title": "Repo depends on a third-party agent-platform SDK",
          "description": "The project depends on an agent-platform SDK (context-ai, langsmith, helicone, langfuse, humanloop, MCP SDK). Informational finding so reviewers audit the vendor's OAuth-scope footprint before merging. Raised to MEDIUM because the April 19 2026 Vercel \u00d7 Context.ai incident showed a single vendor compromise can turn into a production breach via transitive OAuth grants.",
          "remediation": "Pin the SDK to an exact version, audit the OAuth scopes it requests, and keep any deployment-level grants (Vercel, GCP, Workspace) in a secrets vault \u2014 never in a committed env file. See Vercel's bulletin for sensitive-env-var guidance: https://vercel.com/kb/bulletin/vercel-april-2026-security-incident"
        },
        {
          "tool_name": "agent-audit-kit",
          "severity": "high",
          "category": "supply-chain",
          "file_path": "src/index.ts",
          "line_number": null,
          "rule_identifier": "AAK-ANTHROPIC-SDK-001",
          "title": "MCP server built on the upstream SDK without STDIO sanitizer",
          "description": "Repository declares a dependency on the upstream Anthropic / ModelContextProtocol SDK (Python `mcp` / `modelcontextprotocol`, TS `@modelcontextprotocol/sdk`, Java `io.modelcontextprotocol:*`, Rust `mcp` / `modelcontextprotocol`) and exposes a STDIO transport (`StdioServerTransport`, `stdio_server`, etc.) without a sanitizer on argv assembly. Anthropic declined to CVE this as working as designed \u2014 sanitization is the developer's responsibility. The OX Security disclosure on 2026-04-15 rolled up L",
          "remediation": "Wrap every argv the STDIO transport builds in an allow-list sanitizer \u2014 `shlex.quote` in Python, `execFile` with an explicit argv array in Node, equivalent in Java/Rust. OR switch the transport off STDIO (`transports=['http']` / `['sse']`). If you have deliberately accepted the risk, add `accepts_stdio_risk: true` plus a `justification:` field in `.agent-audit-kit.yml`."
        },
        {
          "tool_name": "agent-audit-kit",
          "severity": "medium",
          "category": "supply-chain",
          "file_path": ".github/workflows/publish.yml",
          "line_number": 30,
          "rule_identifier": "AAK-GHA-IMMUTABLE-001",
          "title": "Third-party GitHub Action not pinned by full commit SHA",
          "description": "A workflow in `.github/workflows/` uses a third-party Action (`owner/action@ref`) where `ref` is a tag or branch name instead of a 40-character commit SHA. A repo-takeover of the Action's publisher can re-point the tag to a malicious revision \u2014 the downstream repo consuming it will happily run the new code with `GITHUB_TOKEN` and write permissions. GitHub's April 2026 Security Roadmap ships Immutable Actions and makes SHA pinning the default policy.",
          "remediation": "Repin third-party Actions to a 40-character commit SHA and add a `# v1.2.3`-style trailing comment for humans. First-party Actions under `actions/` and `github/` are exempt (they now ship Immutable Actions). Dependabot will auto-bump SHA pins when `update-type: all` is set."
        },
        {
          "tool_name": "agent-audit-kit",
          "severity": "medium",
          "category": "supply-chain",
          "file_path": ".github/workflows/publish.yml",
          "line_number": 46,
          "rule_identifier": "AAK-GHA-IMMUTABLE-001",
          "title": "Third-party GitHub Action not pinned by full commit SHA",
          "description": "A workflow in `.github/workflows/` uses a third-party Action (`owner/action@ref`) where `ref` is a tag or branch name instead of a 40-character commit SHA. A repo-takeover of the Action's publisher can re-point the tag to a malicious revision \u2014 the downstream repo consuming it will happily run the new code with `GITHUB_TOKEN` and write permissions. GitHub's April 2026 Security Roadmap ships Immutable Actions and makes SHA pinning the default policy.",
          "remediation": "Repin third-party Actions to a 40-character commit SHA and add a `# v1.2.3`-style trailing comment for humans. First-party Actions under `actions/` and `github/` are exempt (they now ship Immutable Actions). Dependabot will auto-bump SHA pins when `update-type: all` is set."
        },
        {
          "tool_name": "agent-audit-kit",
          "severity": "medium",
          "category": "supply-chain",
          "file_path": ".github/workflows/ci.yml",
          "line_number": 23,
          "rule_identifier": "AAK-GHA-IMMUTABLE-001",
          "title": "Third-party GitHub Action not pinned by full commit SHA",
          "description": "A workflow in `.github/workflows/` uses a third-party Action (`owner/action@ref`) where `ref` is a tag or branch name instead of a 40-character commit SHA. A repo-takeover of the Action's publisher can re-point the tag to a malicious revision \u2014 the downstream repo consuming it will happily run the new code with `GITHUB_TOKEN` and write permissions. GitHub's April 2026 Security Roadmap ships Immutable Actions and makes SHA pinning the default policy.",
          "remediation": "Repin third-party Actions to a 40-character commit SHA and add a `# v1.2.3`-style trailing comment for humans. First-party Actions under `actions/` and `github/` are exempt (they now ship Immutable Actions). Dependabot will auto-bump SHA pins when `update-type: all` is set."
        }
      ],
      "execution_duration_seconds": 9.041763900997466,
      "status": "complete",
      "metadata": {
        "source": "pypi",
        "source_url": "https://pypi.org/project/agent-audit-kit/0.3.26/",
        "report_type": "agent-audit-kit-sast",
        "files_scanned": 19,
        "install_command": "pip install --require-hashes -r docker/scanner-base/agent-audit-kit/requirements.txt",
        "rules_evaluated": 211,
        "severity_counts": {
          "low": 1,
          "high": 1,
          "medium": 4,
          "critical": 0,
          "informational": 0
        }
      },
      "display_score": 63.0,
      "display_badge": "Caution"
    },
    {
      "scanner_name": "bearer",
      "scanner_version": "2.0.2",
      "score": 100.0,
      "scanner_badge": "Verified",
      "findings": [],
      "execution_duration_seconds": 9.617283749001217,
      "status": "complete",
      "metadata": {
        "source": "github-releases",
        "source_url": "https://github.com/Bearer/bearer",
        "report_type": "security",
        "rules_loaded": 1,
        "install_command": "curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | sh -s -- -b /usr/local/bin \"v2.0.2\""
      },
      "display_score": 100.0,
      "display_badge": "Verified"
    },
    {
      "scanner_name": "nerlo-behavioral",
      "scanner_version": "0.1.0",
      "score": 100.0,
      "scanner_badge": "Verified",
      "findings": [],
      "execution_duration_seconds": 44.70559732000402,
      "status": "complete",
      "metadata": {
        "source": "nerlo-original",
        "source_url": "https://github.com/nerlo-ai/nerlo",
        "report_type": "nerlo-behavioral",
        "ruleset_path": "/opt/nerlo-rules/exfiltration.yaml",
        "files_scanned": 4,
        "install_command": "pip install 'semgrep==1.97.0'"
      },
      "display_score": 100.0,
      "display_badge": "Verified"
    },
    {
      "scanner_name": "nerlo-install-instruction",
      "scanner_version": "0.1.0",
      "score": 100.0,
      "scanner_badge": "Verified",
      "findings": [],
      "execution_duration_seconds": 44.12303324499226,
      "status": "complete",
      "metadata": {
        "source": "nerlo-original",
        "source_url": "https://github.com/nerlo-ai/nerlo",
        "report_type": "nerlo-install-instruction",
        "ruleset_path": "/opt/nerlo-rules/install_instructions.yaml",
        "files_scanned": 3,
        "install_command": "pip install 'semgrep==1.97.0'"
      },
      "display_score": 100.0,
      "display_badge": "Verified"
    },
    {
      "scanner_name": "trivy",
      "scanner_version": "0.71.0",
      "score": 0.0,
      "scanner_badge": "Unsafe",
      "findings": [
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-29087",
          "title": "@hono/node-server has authorization bypass for protected static paths via encoded slashes in Serve Static Middleware",
          "description": "@hono/node-server allows running the Hono application on Node.js. Prior to version 1.19.10, when using @hono/node-server's static file serving together with route-based middleware protections (e.g. protecting /admin/*), inconsistent URL decoding can allow protected static resources to be accessed without authorization. In particular, paths containing encoded slashes (%2F) may be evaluated differently by routing/middleware matching versus static file path resolution, enabling a bypass where middl",
          "remediation": "Upgrade @hono/node-server from 1.19.9 to 1.19.10 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-39406",
          "title": "@hono/node-server: Middleware bypass via repeated slashes in serveStatic",
          "description": "@hono/node-server allows running the Hono application on Node.js. Prior to 1.19.13, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in 1.19.13.",
          "remediation": "Upgrade @hono/node-server from 1.19.9 to 1.19.13 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2025-69873",
          "title": "ajv: ReDoS via $data reference",
          "description": "ajv (Another JSON Schema Validator) before 8.18.0 is vulnerable to Regular Expression Denial of Service (ReDoS) when the $data option is enabled. The pattern keyword accepts runtime data via JSON Pointer syntax ($data reference), which is passed directly to the JavaScript RegExp() constructor without validation. An attacker can inject a malicious regex pattern (e.g., \"^(a|a)*$\") combined with crafted input to cause catastrophic backtracking. A 31-character payload causes approximately 44 seconds",
          "remediation": "Upgrade ajv from 8.17.1 to 8.18.0, 6.14.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "low",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-12590",
          "title": "body-parser: body-parser: Denial of Service via invalid limit option",
          "description": "Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-pars",
          "remediation": "Upgrade body-parser from 2.2.2 to 1.20.6, 2.3.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-30827",
          "title": "express-rate-limit: express-rate-limit: Denial of Service for IPv4 clients due to incorrect IPv6 subnet masking",
          "description": "express-rate-limit is a basic rate-limiting middleware for Express. In versions starting from 8.0.0 and prior to versions 8.0.2, 8.1.1, 8.2.2, and 8.3.0, the default keyGenerator in express-rate-limit applies IPv6 subnet masking (/56 by default) to all addresses that net.isIPv6() returns true for. This includes IPv4-mapped IPv6 addresses (::ffff:x.x.x.x), which Node.js returns as request.ip on dual-stack servers. Because the first 80 bits of all IPv4-mapped addresses are zero, a /56 (or any /32 ",
          "remediation": "Upgrade express-rate-limit from 8.2.1 to 8.2.2, 8.1.1, 8.0.2 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-6321",
          "title": "fast-uri: fast-uri: Path traversal vulnerability allows bypass of security policies",
          "description": "fast-uri decoded percent-encoded path separators and dot segments before applying dot-segment removal in its normalize() and equal() functions. Encoded path data was treated like real slashes and parent-directory references, so distinct URIs could collapse onto the same normalized path. Applications that normalize or compare attacker-controlled URLs to enforce path-based policy can be bypassed, with a path that appears confined under an allowed prefix normalizing to a different location. Version",
          "remediation": "Upgrade fast-uri from 3.1.0 to 3.1.1 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-6322",
          "title": "fast-uri: fast-uri: URI authority bypass due to improper delimiter handling",
          "description": "fast-uri normalize() decoded percent-encoded authority delimiters inside the host component and then re-emitted them as raw delimiters during serialization. A host that combined an allowed domain, an encoded at-sign, and a different domain was re-emitted with the at-sign as a raw userinfo separator, changing the URI's authority to the second domain. Applications that normalize untrusted URLs before host allowlist checks, redirect validation, or outbound request routing can be steered to a differ",
          "remediation": "Upgrade fast-uri from 3.1.0 to 3.1.2 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-29045",
          "title": "Hono vulnerable to arbitrary file access via serveStatic vulnerability ",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization. The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.4 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-54290",
          "title": "hono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, with credentials: true and no explicit origin (the default wildcard), the CORS Middleware reflects the request's Origin and sends Access-Control-Allow-Credentials: true. Any site can then make credentialed cross-origin requests and read the responses, exposing cookie-authenticated endpoints to arbitrary origins. This vulnerability is fixed in 4.12.25.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-29085",
          "title": "Hono Vulnerable to SSE Control Field Injection via CR/LF in writeSSE()",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using streamSSE() in Streaming Helper, the event, id, and retry fields were not validated for carriage return (\\r) or newline (\\n) characters. Because the SSE protocol uses line breaks as field delimiters, this could allow injection of additional SSE fields within the same event frame if untrusted input was passed into these fields. This issue has been patched in version 4.12.4.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.4 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-29086",
          "title": "Hono Vulnerable to Cookie Attribute Injection via Unsanitized domain and path in setCookie()",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, the setCookie() utility did not validate semicolons (;), carriage returns (\\r), or newline characters (\\n) in the domain and path options when constructing the Set-Cookie header. Because cookie attributes are delimited by semicolons, this could allow injection of additional cookie attributes if untrusted input was passed into these fields. This issue has been patched in version 4.12.4.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.4 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-39407",
          "title": "Hono: Middleware bypass via repeated slashes in serveStatic",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in ",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-39408",
          "title": "Hono: Path traversal in toSSG() allows writing files outside the output directory",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a path traversal issue in toSSG() allows files to be written outside the configured output directory during static site generation. When using dynamic route parameters via ssgParams, specially crafted values can cause generated file paths to escape the intended output directory. This vulnerability is fixed in 4.12.12.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-39409",
          "title": "Hono has incorrect IP matching in ipRestriction() for IPv4-mapped IPv6 addresses",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, ipRestriction() does not canonicalize IPv4-mapped IPv6 client addresses (e.g. ::ffff:127.0.0.1) before applying IPv4 allow or deny rules. In environments such as Node.js dual-stack, this can cause IPv4 rules to fail to match, leading to unintended authorization behavior. This vulnerability is fixed in 4.12.12.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-39410",
          "title": "Hono: Non-breaking space prefix bypass in cookie name handling in getCookie()",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a discrepancy between browser cookie parsing and parse() handling allows cookie prefix protections to be bypassed. Cookie names that are treated as distinct by the browser may be normalized to the same key by parse(), allowing attacker-controlled cookies to override legitimate ones. This vulnerability is fixed in 4.12.12.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-44455",
          "title": "hono/jsx has Unvalidated JSX Tag Names that May Allow HTML Injection",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.16, Improper handling of JSX element tag names in hono/jsx allowed unvalidated tag names to be directly inserted into the generated HTML output. When untrusted input is used as a tag name via the programmatic jsx() or createElement() APIs during server-side rendering, specially crafted values may break out of the intended element context and inject unintended HTML. This vulnerability is fixed in 4",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.16 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-44456",
          "title": "Hono: bodyLimit() can be bypassed for chunked / unknown-length requests",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.16, bodyLimit() does not reliably enforce maxSize for requests without a usable Content-Length (e.g. Transfer-Encoding: chunked). Oversized requests can reach handlers and return 200 instead of 413. This vulnerability is fixed in 4.12.16.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.16 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-44457",
          "title": "Hono's Cache Middleware ignores Vary: Authorization / Vary: Cookie leading to cross-user cache leakage",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.18, Cache Middleware does not skip caching for responses that declare per-user variance via Vary: Authorization or Vary: Cookie. As a result, a response cached for one authenticated user may be served to subsequent requests from different users. This vulnerability is fixed in 4.12.18.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.18 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-44458",
          "title": "Hono has CSS Declaration Injection via Style Object Values in JSX SSR",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.18, the JSX renderer escapes style attribute object values for HTML but not for CSS. Untrusted input in a style object value or property name can therefore inject additional CSS declarations into the rendered style attribute. The impact is limited to CSS and does not allow JavaScript execution or HTML attribute breakout. This vulnerability is fixed in 4.12.18.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.18 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-47673",
          "title": "Hono: JWT middleware accepts any Authorization scheme, not only Bearer",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.21, the jwt and jwk middlewares do not verify that the Authorization header value uses theBearer scheme. Any two-part header value \u2014 regardless of the scheme name in the first position \u2014 proceeds to JWT verification. A request presenting a valid JWT under a non-Bearer scheme identifier (such as Basic or Token) is authenticated identically to a correctly formed Bearer request. This vulnerability is",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.21 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-47674",
          "title": "Hono: IP Restriction bypasses static deny rules for non-canonical IPv6 ",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.21, the ip-restriction middleware (hono/ip-restriction) compares incoming IP addresses against configured deny and allow rules using string equality after partial normalization. Non-canonical IPv6 representations of an address already listed in a static rule \u2014 such as compressed forms, explicit-zero forms, or hex-notation IPv4-mapped addresses \u2014 do not match the normalized rule entry, causing the ",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.21 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-47675",
          "title": "Hono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie injection",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.21, the serialize() function in hono/cookie validates domain and path options against characters that corrupt Set-Cookie header syntax (;, \\r, \\n), but does not apply the same validation to sameSite and priority. An application that passes user-controlled input into either option may produce a Set-Cookie response header containing attacker-chosen additional attributes. This vulnerability is fixed ",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.21 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-47676",
          "title": "Hono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.21, app.mount() strips the mount prefix from the incoming request path using the raw URL pathname, while route matching is performed against the percent-decoded path. This inconsistency causes the prefix to be stripped at the wrong position when the path contains percent-encoded multi-byte characters, resulting in the mounted sub-application receiving an incorrect path. This vulnerability is fixed",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.21 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-54286",
          "title": "hono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, on Windows hosts, an encoded backslash (%5C) in the request path decodes to \\, which the Windows path resolver treats as a separator. serve-static then resolves a single URL segment such as admin\\secret.txt into a nested file under the root and serves it, letting an attacker read static files meant to be protected behind prefix-mounted middleware. This vulnerability is fixed in 4.12.25.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-54287",
          "title": "hono: AWS Lambda adapter merges multiple `Set-Cookie` headers into one value, dropping cookies on ALB single-header and Lattice",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, on AWS Lambda, the ALB single-header response and the VPC Lattice v2 response join multiple Set-Cookie headers into one comma-separated value. Because commas also appear inside cookie attributes (for example Expires dates), clients cannot split the value back into individual cookies and silently drop or misparse them. This vulnerability is fixed in 4.12.25.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-54288",
          "title": "hono: Body Limit Middleware can be bypassed on AWS Lambda by understating `Content-Length`",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, the Body Limit Middleware trusts the request's Content-Length header to decide whether a body is within the limit. On AWS Lambda (API Gateway v1/v2, ALB, VPC Lattice, and Lambda@Edge) the body is delivered fully buffered and the adapter builds the request with the client-declared Content-Length, which need not match the actual payload. A client can declare a tiny Content-Length while sending a",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-54289",
          "title": "hono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, on AWS Lambda@Edge, CloudFront delivers a request header that appears more than once as several separate entries. The adapter writes each value with Headers.set instead of Headers.append, so every value overwrites the previous one and only the last reaches the application. Repeated request headers such as X-Forwarded-For, Forwarded, and Via are silently truncated to a single value. Request mid",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-56761",
          "title": "hono Improperly Handles JSX Attribute Names Allows HTML Injection in hono/jsx SSR",
          "description": "hono before 4.12.14 contains an html injection vulnerability in jsx server-side rendering that allows attackers to inject unintended html by using malformed attribute names. Attackers can craft specially crafted attribute keys containing characters like quotes or angle brackets to break html tag boundaries and inject arbitrary attributes or elements.",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.14 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-26pp-8wgv-hjvm",
          "title": "Hono missing validation of cookie name on write path in setCookie()",
          "description": "## Summary\n\nCookie names are not validated on the write path when using `setCookie()`, `serialize()`, or `serializeSigned()` to generate Set-Cookie headers.\n\nWhile certain cookie attributes such as domain and path are validated, the cookie name itself may contain invalid characters.\n\nThis results in inconsistent handling of cookie names between parsing (read path) and serialization (write path).\n\n## Details\n\nWhen applications use `setCookie()`, `serialize()`, or `serializeSigned()` with a user-c",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-v8w9-8mx6-g223",
          "title": "Hono vulnerable to Prototype Pollution possible through __proto__ key allowed in parseBody({ dot: true })",
          "description": "## Summary\n\nWhen using `parseBody({ dot: true })` in HonoRequest, specially crafted form field names such as `__proto__.x` could create objects containing a `__proto__` property.\n\nIf the parsed result is later merged into regular JavaScript objects using unsafe merge patterns, this may lead to prototype pollution in the target object.\n\n## Details\n\nThe `parseBody({ dot: true })` feature supports dot notation to construct nested objects from form field names.\n\nIn previous versions, the `__proto__`",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.7 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "low",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-44459",
          "title": "Hono has improper validation of NumericDate claims (exp, nbf, iat) in JWT verify()",
          "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.18, improper validation of the JWT NumericDate claims exp, nbf, and iat in hono/utils/jwt allows tokens with non-spec-compliant claim values to silently bypass time-based checks. This issue is not exploitable by an anonymous attacker; it only manifests when a malformed claim value reaches verify() \u2014 typically when the application itself issues such tokens, or when the signing key is otherwise unde",
          "remediation": "Upgrade hono from 4.11.7 to 4.12.18 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "low",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-gq3j-xvxp-8hrf",
          "title": "Hono added timing comparison hardening in basicAuth and bearerAuth",
          "description": "## Summary\n\nThe `basicAuth` and `bearerAuth` middlewares previously used a comparison that was not fully timing-safe.\n\nThe `timingSafeEqual` function used normal string equality (`===`) when comparing hash values. This comparison may stop early if values differ, which can theoretically cause small timing differences.\n\nThe implementation has been updated to use a safer comparison method.\n\n\n## Details\n\nThe issue was caused by the use of normal string equality (`===`) when comparing hash values ins",
          "remediation": "Upgrade hono from 4.11.7 to 4.11.10 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-42338",
          "title": "ip-address: ip-address: Cross-site scripting via improper HTML escaping of untrusted input",
          "description": "ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.1.1, Address6.group() and Address6.link() do not HTML-escape attacker-controlled content before embedding it in the HTML strings they return, and AddressError.parseMessage (emitted by the Address6 constructor for invalid input) can contain unescaped attacker-controlled content in one branch. An application that (1) passes untrusted input to Address6 and (2) renders the output of these methods,",
          "remediation": "Upgrade ip-address from 10.0.1 to 10.1.1 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-4926",
          "title": "path-to-regexp: path-to-regexp: Denial of Service via crafted regular expressions",
          "description": "Impact:\n\nA bad regular expression is generated any time you have multiple sequential optional groups (curly brace syntax), such as `{a}{b}{c}:z`. The generated regex grows exponentially with the number of groups, causing denial of service.\n\nPatches:\n\nFixed in version 8.4.0.\n\nWorkarounds:\n\nLimit the number of sequential optional groups in route patterns. Avoid passing user-controlled input as route patterns.",
          "remediation": "Upgrade path-to-regexp from 8.2.0 to 8.4.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-4923",
          "title": "path-to-regexp: path-to-regexp: Denial of Service via specially crafted paths with multiple wildcards",
          "description": "Impact:\n\nWhen using multiple wildcards, combined with at least one parameter, a regular expression can be generated that is vulnerable to ReDoS. This backtracking vulnerability requires the second wildcard to be somewhere other than the end of the path.\n\nUnsafe examples:\n\n/*foo-*bar-:baz\n/*a-:b-*c-:d\n/x/*a-:b/*c/y\n\nSafe examples:\n\n/*foo-:bar\n/*foo-:bar-*baz\n\nPatches:\n\nUpgrade to version 8.4.0.\n\nWorkarounds:\n\nIf you are using multiple wildcard parameters, you can check the regex output with a too",
          "remediation": "Upgrade path-to-regexp from 8.2.0 to 8.4.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-8723",
          "title": "### Summary    `qs.stringify` throws `TypeError` when called with `arr ...",
          "description": "### Summary\n\n\n\n`qs.stringify` throws `TypeError` when called with `arrayFormat: 'comma'` and `encodeValuesOnly: true` on an array containing `null` or `undefined`. The throw is synchronous and not handled by any of qs's null-related options (`skipNulls`, `strictNullHandling`).\n\n\n\n### Details\n\n\n\nIn the comma + `encodeValuesOnly` branch, `lib/stringify.js:145` mapped the array through the raw encoder before joining:\n\n\n\n```js\n\n\n\nobj = utils.maybeMap(obj, encoder);\n\n\n\n```\n\n\n\n`utils.encode` (`lib/uti",
          "remediation": "Upgrade qs from 6.14.1 to 6.15.2 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "low",
          "category": "pnpm",
          "file_path": "pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "CVE-2026-2391",
          "title": "qs: qs's arrayLimit bypass in comma parsing allows denial of service",
          "description": "### Summary\nThe `arrayLimit` option in qs does not enforce limits for comma-separated values when `comma: true` is enabled, allowing attackers to cause denial-of-service via memory exhaustion. This is a bypass of the array limit enforcement, similar to the bracket notation bypass addressed in GHSA-6rw7-vpxm-498p (CVE-2025-15284).\n\n### Details\nWhen the `comma` option is set to `true` (not the default, but configurable in applications), qs allows parsing comma-separated strings as arrays (e.g., `?",
          "remediation": "Upgrade qs from 6.14.1 to 6.14.2 or later"
        }
      ],
      "execution_duration_seconds": 1.439935949005303,
      "status": "complete",
      "metadata": {
        "source": "github-releases",
        "source_url": "https://github.com/aquasecurity/trivy/releases/tag/v0.71.0",
        "report_type": "filesystem-vulnerability",
        "install_command": "curl -sfL -o /tmp/trivy.deb https://github.com/aquasecurity/trivy/releases/download/v0.71.0/trivy_0.71.0_Linux-64bit.deb && echo '<sha256>  /tmp/trivy.deb' | sha256sum -c - && dpkg -i /tmp/trivy.deb",
        "severity_counts": {
          "low": 4,
          "high": 7,
          "medium": 26,
          "critical": 0,
          "informational": 0
        },
        "manifests_scanned": [
          "pnpm-lock.yaml"
        ]
      },
      "display_score": 0.0,
      "display_badge": "Unsafe"
    },
    {
      "scanner_name": "osv-scanner",
      "scanner_version": "2.3.8",
      "score": 0.0,
      "scanner_badge": "Unsafe",
      "findings": [
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-92pp-h63x-v22m",
          "title": "GHSA-92pp-h63x-v22m \u2014 npm @hono/node-server@1.19.9",
          "description": "aliases: CVE-2026-39406, GHSA-92pp-h63x-v22m | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-wc8c-qw6v-h7f6",
          "title": "GHSA-wc8c-qw6v-h7f6 \u2014 npm @hono/node-server@1.19.9",
          "description": "aliases: CVE-2026-29087, GHSA-wc8c-qw6v-h7f6 | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-2g4f-4pwh-qvx6",
          "title": "GHSA-2g4f-4pwh-qvx6 \u2014 npm ajv@8.17.1",
          "description": "aliases: CVE-2025-69873, GHSA-2g4f-4pwh-qvx6 | CVSS: 5.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "low",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-v422-hmwv-36x6",
          "title": "GHSA-v422-hmwv-36x6 \u2014 npm body-parser@2.2.2",
          "description": "aliases: CVE-2026-12590, GHSA-v422-hmwv-36x6 | CVSS: 3.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-46wh-pxpv-q5gq",
          "title": "GHSA-46wh-pxpv-q5gq \u2014 npm express-rate-limit@8.2.1",
          "description": "aliases: CVE-2026-30827, GHSA-46wh-pxpv-q5gq | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-q3j6-qgpj-74h6",
          "title": "GHSA-q3j6-qgpj-74h6 \u2014 npm fast-uri@3.1.0",
          "description": "aliases: CVE-2026-6321, GHSA-q3j6-qgpj-74h6 | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-v39h-62p7-jpjc",
          "title": "GHSA-v39h-62p7-jpjc \u2014 npm fast-uri@3.1.0",
          "description": "aliases: CVE-2026-6322, GHSA-v39h-62p7-jpjc | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-26pp-8wgv-hjvm",
          "title": "GHSA-26pp-8wgv-hjvm \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-56762, GHSA-26pp-8wgv-hjvm | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-2gcr-mfcq-wcc3",
          "title": "GHSA-2gcr-mfcq-wcc3 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-47676, GHSA-2gcr-mfcq-wcc3 | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-3hrh-pfw6-9m5x",
          "title": "GHSA-3hrh-pfw6-9m5x \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-47675, GHSA-3hrh-pfw6-9m5x | CVSS: 4.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-458j-xx4x-4375",
          "title": "GHSA-458j-xx4x-4375 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-56761, GHSA-458j-xx4x-4375 | CVSS: 4.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-5pq2-9x2x-5p6w",
          "title": "GHSA-5pq2-9x2x-5p6w \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-29086, GHSA-5pq2-9x2x-5p6w | CVSS: 5.4",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-69xw-7hcm-h432",
          "title": "GHSA-69xw-7hcm-h432 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-44455, GHSA-69xw-7hcm-h432 | CVSS: 4.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-88fw-hqm2-52qc",
          "title": "GHSA-88fw-hqm2-52qc \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-54290, GHSA-88fw-hqm2-52qc | CVSS: 7.1",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-9vqf-7f2p-gf9v",
          "title": "GHSA-9vqf-7f2p-gf9v \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-44456, GHSA-9vqf-7f2p-gf9v | CVSS: 6.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-f577-qrjj-4474",
          "title": "GHSA-f577-qrjj-4474 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-47673, GHSA-f577-qrjj-4474 | CVSS: 4.8",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "low",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-gq3j-xvxp-8hrf",
          "title": "GHSA-gq3j-xvxp-8hrf \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-56764, GHSA-gq3j-xvxp-8hrf | CVSS: 3.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "low",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-hm8q-7f3q-5f36",
          "title": "GHSA-hm8q-7f3q-5f36 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-44459, GHSA-hm8q-7f3q-5f36 | CVSS: 3.8",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-j6c9-x7qj-28xf",
          "title": "GHSA-j6c9-x7qj-28xf \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-54287, GHSA-j6c9-x7qj-28xf | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-p6xx-57qc-3wxr",
          "title": "GHSA-p6xx-57qc-3wxr \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-29085, GHSA-p6xx-57qc-3wxr | CVSS: 6.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-p77w-8qqv-26rm",
          "title": "GHSA-p77w-8qqv-26rm \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-44457, GHSA-p77w-8qqv-26rm | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-q5qw-h33p-qvwr",
          "title": "GHSA-q5qw-h33p-qvwr \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-29045, GHSA-q5qw-h33p-qvwr | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-qp7p-654g-cw7p",
          "title": "GHSA-qp7p-654g-cw7p \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-44458, GHSA-qp7p-654g-cw7p | CVSS: 4.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-r5rp-j6wh-rvv4",
          "title": "GHSA-r5rp-j6wh-rvv4 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-39410, GHSA-r5rp-j6wh-rvv4 | CVSS: 4.8",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-rv63-4mwf-qqc2",
          "title": "GHSA-rv63-4mwf-qqc2 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-54288, GHSA-rv63-4mwf-qqc2 | CVSS: 6.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-v8w9-8mx6-g223",
          "title": "GHSA-v8w9-8mx6-g223 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-56763, GHSA-v8w9-8mx6-g223 | CVSS: 4.8",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-wgpf-jwqj-8h8p",
          "title": "GHSA-wgpf-jwqj-8h8p \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-54289, GHSA-wgpf-jwqj-8h8p | CVSS: 4.8",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-wmmm-f939-6g9c",
          "title": "GHSA-wmmm-f939-6g9c \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-39407, GHSA-wmmm-f939-6g9c | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-wwfh-h76j-fc44",
          "title": "GHSA-wwfh-h76j-fc44 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-54286, GHSA-wwfh-h76j-fc44 | CVSS: 5.9",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-xf4j-xp2r-rqqx",
          "title": "GHSA-xf4j-xp2r-rqqx \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-39408, GHSA-xf4j-xp2r-rqqx | CVSS: 5.9",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-xpcf-pg52-r92g",
          "title": "GHSA-xpcf-pg52-r92g \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-39409, GHSA-xpcf-pg52-r92g | CVSS: 6.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-xrhx-7g5j-rcj5",
          "title": "GHSA-xrhx-7g5j-rcj5 \u2014 npm hono@4.11.7",
          "description": "aliases: CVE-2026-47674, GHSA-xrhx-7g5j-rcj5 | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-v2v4-37r5-5v8g",
          "title": "GHSA-v2v4-37r5-5v8g \u2014 npm ip-address@10.0.1",
          "description": "aliases: CVE-2026-42338, GHSA-v2v4-37r5-5v8g | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-52cp-r559-cp3m",
          "title": "GHSA-52cp-r559-cp3m \u2014 npm js-yaml@3.14.1",
          "description": "aliases: CVE-2026-59869, GHSA-52cp-r559-cp3m | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-h67p-54hq-rp68",
          "title": "GHSA-h67p-54hq-rp68 \u2014 npm js-yaml@3.14.1",
          "description": "aliases: CVE-2026-53550, GHSA-h67p-54hq-rp68 | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-mh29-5h37-fv8m",
          "title": "GHSA-mh29-5h37-fv8m \u2014 npm js-yaml@3.14.1",
          "description": "aliases: CVE-2025-64718, GHSA-mh29-5h37-fv8m | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-52cp-r559-cp3m",
          "title": "GHSA-52cp-r559-cp3m \u2014 npm js-yaml@4.1.1",
          "description": "aliases: CVE-2026-59869, GHSA-52cp-r559-cp3m | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-h67p-54hq-rp68",
          "title": "GHSA-h67p-54hq-rp68 \u2014 npm js-yaml@4.1.1",
          "description": "aliases: CVE-2026-53550, GHSA-h67p-54hq-rp68 | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-27v5-c462-wpq7",
          "title": "GHSA-27v5-c462-wpq7 \u2014 npm path-to-regexp@8.2.0",
          "description": "aliases: CVE-2026-4923, GHSA-27v5-c462-wpq7 | CVSS: 5.9",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-j3q9-mxjg-w52f",
          "title": "GHSA-j3q9-mxjg-w52f \u2014 npm path-to-regexp@8.2.0",
          "description": "aliases: CVE-2026-4926, GHSA-j3q9-mxjg-w52f | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-3v7f-55p6-f55p",
          "title": "GHSA-3v7f-55p6-f55p \u2014 npm picomatch@2.3.1",
          "description": "aliases: CVE-2026-33672, GHSA-3v7f-55p6-f55p | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-c2c7-rcm5-vvqj",
          "title": "GHSA-c2c7-rcm5-vvqj \u2014 npm picomatch@2.3.1",
          "description": "aliases: CVE-2026-33671, GHSA-c2c7-rcm5-vvqj | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-q8mj-m7cp-5q26",
          "title": "GHSA-q8mj-m7cp-5q26 \u2014 npm qs@6.14.1",
          "description": "aliases: CVE-2026-8723, GHSA-q8mj-m7cp-5q26 | CVSS: 6.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "low",
          "category": "npm",
          "file_path": "/repo/pnpm-lock.yaml",
          "line_number": null,
          "rule_identifier": "GHSA-w7fw-mjwx-w883",
          "title": "GHSA-w7fw-mjwx-w883 \u2014 npm qs@6.14.1",
          "description": "aliases: CVE-2026-2391, GHSA-w7fw-mjwx-w883 | CVSS: 3.7",
          "remediation": null
        }
      ],
      "execution_duration_seconds": 19.45738077799615,
      "status": "complete",
      "metadata": {
        "source": "github-releases",
        "source_url": "https://github.com/google/osv-scanner/releases/tag/v2.3.8",
        "report_type": "osv-vulnerability",
        "ecosystems_seen": [
          "npm"
        ],
        "install_command": "curl -sfL -o /usr/local/bin/osv-scanner https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_linux_amd64 && echo '<sha256>  /usr/local/bin/osv-scanner' | sha256sum -c - && chmod +x /usr/local/bin/osv-scanner",
        "severity_counts": {
          "low": 4,
          "high": 10,
          "medium": 30,
          "critical": 0,
          "informational": 0
        },
        "manifests_scanned": [
          "/repo/pnpm-lock.yaml"
        ],
        "finding_id_aliases": {
          "GHSA-26pp-8wgv-hjvm": [
            "CVE-2026-56762"
          ],
          "GHSA-27v5-c462-wpq7": [
            "CVE-2026-4923"
          ],
          "GHSA-2g4f-4pwh-qvx6": [
            "CVE-2025-69873"
          ],
          "GHSA-2gcr-mfcq-wcc3": [
            "CVE-2026-47676"
          ],
          "GHSA-3hrh-pfw6-9m5x": [
            "CVE-2026-47675"
          ],
          "GHSA-3v7f-55p6-f55p": [
            "CVE-2026-33672"
          ],
          "GHSA-458j-xx4x-4375": [
            "CVE-2026-56761"
          ],
          "GHSA-46wh-pxpv-q5gq": [
            "CVE-2026-30827"
          ],
          "GHSA-52cp-r559-cp3m": [
            "CVE-2026-59869",
            "CVE-2026-59869"
          ],
          "GHSA-5pq2-9x2x-5p6w": [
            "CVE-2026-29086"
          ],
          "GHSA-69xw-7hcm-h432": [
            "CVE-2026-44455"
          ],
          "GHSA-88fw-hqm2-52qc": [
            "CVE-2026-54290"
          ],
          "GHSA-92pp-h63x-v22m": [
            "CVE-2026-39406"
          ],
          "GHSA-9vqf-7f2p-gf9v": [
            "CVE-2026-44456"
          ],
          "GHSA-c2c7-rcm5-vvqj": [
            "CVE-2026-33671"
          ],
          "GHSA-f577-qrjj-4474": [
            "CVE-2026-47673"
          ],
          "GHSA-gq3j-xvxp-8hrf": [
            "CVE-2026-56764"
          ],
          "GHSA-h67p-54hq-rp68": [
            "CVE-2026-53550",
            "CVE-2026-53550"
          ],
          "GHSA-hm8q-7f3q-5f36": [
            "CVE-2026-44459"
          ],
          "GHSA-j3q9-mxjg-w52f": [
            "CVE-2026-4926"
          ],
          "GHSA-j6c9-x7qj-28xf": [
            "CVE-2026-54287"
          ],
          "GHSA-mh29-5h37-fv8m": [
            "CVE-2025-64718"
          ],
          "GHSA-p6xx-57qc-3wxr": [
            "CVE-2026-29085"
          ],
          "GHSA-p77w-8qqv-26rm": [
            "CVE-2026-44457"
          ],
          "GHSA-q3j6-qgpj-74h6": [
            "CVE-2026-6321"
          ],
          "GHSA-q5qw-h33p-qvwr": [
            "CVE-2026-29045"
          ],
          "GHSA-q8mj-m7cp-5q26": [
            "CVE-2026-8723"
          ],
          "GHSA-qp7p-654g-cw7p": [
            "CVE-2026-44458"
          ],
          "GHSA-r5rp-j6wh-rvv4": [
            "CVE-2026-39410"
          ],
          "GHSA-rv63-4mwf-qqc2": [
            "CVE-2026-54288"
          ],
          "GHSA-v2v4-37r5-5v8g": [
            "CVE-2026-42338"
          ],
          "GHSA-v39h-62p7-jpjc": [
            "CVE-2026-6322"
          ],
          "GHSA-v422-hmwv-36x6": [
            "CVE-2026-12590"
          ],
          "GHSA-v8w9-8mx6-g223": [
            "CVE-2026-56763"
          ],
          "GHSA-w7fw-mjwx-w883": [
            "CVE-2026-2391"
          ],
          "GHSA-wc8c-qw6v-h7f6": [
            "CVE-2026-29087"
          ],
          "GHSA-wgpf-jwqj-8h8p": [
            "CVE-2026-54289"
          ],
          "GHSA-wmmm-f939-6g9c": [
            "CVE-2026-39407"
          ],
          "GHSA-wwfh-h76j-fc44": [
            "CVE-2026-54286"
          ],
          "GHSA-xf4j-xp2r-rqqx": [
            "CVE-2026-39408"
          ],
          "GHSA-xpcf-pg52-r92g": [
            "CVE-2026-39409"
          ],
          "GHSA-xrhx-7g5j-rcj5": [
            "CVE-2026-47674"
          ]
        },
        "cross_scanner_correlation": {
          "only_osv": [
            "GHSA-3v7f-55p6-f55p",
            "GHSA-52cp-r559-cp3m",
            "GHSA-c2c7-rcm5-vvqj",
            "GHSA-h67p-54hq-rp68",
            "GHSA-mh29-5h37-fv8m"
          ],
          "only_trivy": [],
          "intersection_ids": [
            "CVE-2025-69873",
            "CVE-2026-12590",
            "CVE-2026-2391",
            "CVE-2026-29045",
            "CVE-2026-29085",
            "CVE-2026-29086",
            "CVE-2026-29087",
            "CVE-2026-30827",
            "CVE-2026-39406",
            "CVE-2026-39407",
            "CVE-2026-39408",
            "CVE-2026-39409",
            "CVE-2026-39410",
            "CVE-2026-42338",
            "CVE-2026-44455",
            "CVE-2026-44456",
            "CVE-2026-44457",
            "CVE-2026-44458",
            "CVE-2026-44459",
            "CVE-2026-47673",
            "CVE-2026-47674",
            "CVE-2026-47675",
            "CVE-2026-47676",
            "CVE-2026-4923",
            "CVE-2026-4926",
            "CVE-2026-54286",
            "CVE-2026-54287",
            "CVE-2026-54288",
            "CVE-2026-54289",
            "CVE-2026-54290",
            "CVE-2026-56761",
            "CVE-2026-6321",
            "CVE-2026-6322",
            "CVE-2026-8723",
            "GHSA-26pp-8wgv-hjvm",
            "GHSA-gq3j-xvxp-8hrf",
            "GHSA-v8w9-8mx6-g223"
          ]
        }
      },
      "display_score": 0.0,
      "display_badge": "Unsafe"
    }
  ],
  "threat_model": "Threat model synthesis has not yet run for this scan. This section is generated by the registry's LLM pipeline (Req 22.3) and will appear in the next regeneration of this report.",
  "audit_chain": {
    "scan_job_id": "4c68caea-6ad9-4e47-8ff6-b90cf6f636a7",
    "scan_completed_at": "2026-07-21T02:25:30.139364+00:00",
    "scanner_versions": {
      "agentshield": "1.4.0",
      "cisco-skill-scanner": "2.0.11",
      "agent-audit-kit": "0.3.26",
      "bearer": "2.0.2",
      "nerlo-behavioral": "0.1.0",
      "nerlo-install-instruction": "0.1.0",
      "trivy": "0.71.0",
      "osv-scanner": "2.3.8"
    },
    "scanner_base_image": "us-central1-docker.pkg.dev/nerlo-vsk-prod/nerlo/scanner-base@sha256:f0ef6a9c2b1c3933e56c75983e56569260abee23955a297ffe8ef87449ca28c0",
    "ai_decision_log_ids": [
      "d155c74a-1c12-400d-bce4-5ce8d7876863"
    ],
    "self_attestation_url": "http://localhost:8000/api/v1/registry/self-attestation"
  },
  "appendix": {
    "raw_scanner_reports": [
      {
        "scanner_name": "agentshield",
        "scanner_version": "1.4.0",
        "score": 100.0,
        "scanner_badge": "Verified",
        "findings": [],
        "execution_duration_seconds": 5.114046843998949,
        "status": "complete",
        "metadata": {
          "source": "npm",
          "source_url": "https://www.npmjs.com/package/ecc-agentshield",
          "install_command": "npm install -g ecc-agentshield@1.4.0",
          "scans_performed": [
            "supply_chain"
          ]
        },
        "display_score": 100.0,
        "display_badge": "Verified"
      },
      {
        "scanner_name": "cisco-skill-scanner",
        "scanner_version": "2.0.11",
        "score": 15.5,
        "scanner_badge": "Unsafe",
        "findings": [
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "high",
            "category": "policy_violation",
            "file_path": "/repo",
            "line_number": null,
            "rule_identifier": "LOW_ANALYZABILITY",
            "title": "Critically low analyzability score",
            "description": "Only 70% of skill content could be analyzed. 6 of 23 files are opaque to the scanner. The safety assessment has low confidence.",
            "remediation": "Replace opaque files (binaries, encrypted content) with inspectable source code to improve scan confidence."
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "low",
            "category": "obfuscation",
            "file_path": "/repo/.changeset/README.md",
            "line_number": null,
            "rule_identifier": "HIDDEN_DATA_FILE",
            "title": "Hidden data file detected",
            "description": "Hidden file found: .changeset/README.md. Hidden files may contain concealed configuration or data that should be reviewed.",
            "remediation": "Move file to a visible location or document its purpose."
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "low",
            "category": "obfuscation",
            "file_path": "/repo/.changeset/config.json",
            "line_number": null,
            "rule_identifier": "HIDDEN_DATA_FILE",
            "title": "Hidden data file detected",
            "description": "Hidden file found: .changeset/config.json. Hidden files may contain concealed configuration or data that should be reviewed.",
            "remediation": "Move file to a visible location or document its purpose."
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "low",
            "category": "social_engineering",
            "file_path": "/repo/SKILL.md",
            "line_number": null,
            "rule_identifier": "SOCIAL_ENG_VAGUE_DESCRIPTION",
            "title": "Vague skill description",
            "description": "Skill description is too short (16 chars). Provide detailed explanation.",
            "remediation": "Provide a clear, detailed description of what the skill does and when to use it"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "informational",
            "category": "policy_violation",
            "file_path": "/repo/SKILL.md",
            "line_number": null,
            "rule_identifier": "MANIFEST_MISSING_LICENSE",
            "title": "Skill does not specify a license",
            "description": "Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.",
            "remediation": "Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "high",
            "category": "data_exfiltration",
            "file_path": "/repo/src/history-parser.ts",
            "line_number": 149,
            "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
            "title": "Node.js filesystem access that could read or write sensitive data",
            "description": "Pattern detected: fs.readFileSync(",
            "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "high",
            "category": "data_exfiltration",
            "file_path": "/repo/src/history-parser.ts",
            "line_number": 188,
            "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
            "title": "Node.js filesystem access that could read or write sensitive data",
            "description": "Pattern detected: fs.readFileSync(",
            "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "high",
            "category": "data_exfiltration",
            "file_path": "/repo/src/index.ts",
            "line_number": 430,
            "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
            "title": "Node.js filesystem access that could read or write sensitive data",
            "description": "Pattern detected: fs.writeFileSync(",
            "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "high",
            "category": "data_exfiltration",
            "file_path": "/repo/src/index.ts",
            "line_number": 445,
            "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
            "title": "Node.js filesystem access that could read or write sensitive data",
            "description": "Pattern detected: fs.writeFileSync(",
            "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "low",
            "category": "social_engineering",
            "file_path": "/repo/.changeset/SKILL.md",
            "line_number": null,
            "rule_identifier": "SOCIAL_ENG_VAGUE_DESCRIPTION",
            "title": "Vague skill description",
            "description": "Skill description is too short (16 chars). Provide detailed explanation.",
            "remediation": "Provide a clear, detailed description of what the skill does and when to use it"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "informational",
            "category": "policy_violation",
            "file_path": "/repo/.changeset/SKILL.md",
            "line_number": null,
            "rule_identifier": "MANIFEST_INVALID_NAME",
            "title": "Skill name does not follow agent skills naming rules",
            "description": "Skill name '.changeset' is invalid. Agent skills require lowercase letters, numbers, and hyphens only, with a maximum length of 64 characters.",
            "remediation": "Rename the skill to match `[a-z0-9-]{1,64}` (e.g., 'pdf-processing')"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "informational",
            "category": "policy_violation",
            "file_path": "/repo/.changeset/SKILL.md",
            "line_number": null,
            "rule_identifier": "MANIFEST_MISSING_LICENSE",
            "title": "Skill does not specify a license",
            "description": "Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.",
            "remediation": "Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)"
          }
        ],
        "execution_duration_seconds": 38.53451306201168,
        "status": "complete",
        "metadata": {
          "source": "pypi",
          "source_url": "https://pypi.org/project/cisco-ai-skill-scanner/2.0.11/",
          "report_type": "cisco-skill-sast",
          "analyzers_used": [
            "bytecode",
            "pipeline",
            "static_analyzer"
          ],
          "skills_scanned": [
            "repo",
            ".changeset"
          ],
          "install_command": "pip install --require-hashes -r docker/scanner-base/cisco-skill-scanner/requirements.txt",
          "severity_counts": {
            "low": 4,
            "high": 5,
            "medium": 0,
            "critical": 0,
            "informational": 3
          }
        },
        "display_score": 15.5,
        "display_badge": "Unsafe"
      },
      {
        "scanner_name": "agent-audit-kit",
        "scanner_version": "0.3.26",
        "score": 63.0,
        "scanner_badge": "Caution",
        "findings": [
          {
            "tool_name": "agent-audit-kit",
            "severity": "low",
            "category": "supply-chain",
            "file_path": "SECURITY.md",
            "line_number": null,
            "rule_identifier": "AAK-SEC-MD-001",
            "title": "MCP server repo missing SECURITY.md or security_contact",
            "description": "A repository whose name or pyproject keywords declare it as an MCP server ships without a top-level SECURITY.md AND without a `security_contact` entry in marketplace.json / pyproject.toml / package.json. Anthropic's April 2026 SECURITY.md guidance makes this the baseline expectation so researchers have a channel.",
            "remediation": "Add SECURITY.md at the repo root with a disclosure email and response SLA; OR add `security_contact` to the project manifest."
          },
          {
            "tool_name": "agent-audit-kit",
            "severity": "medium",
            "category": "supply-chain",
            "file_path": "package.json",
            "line_number": 47,
            "rule_identifier": "AAK-OAUTH-3P-001",
            "title": "Repo depends on a third-party agent-platform SDK",
            "description": "The project depends on an agent-platform SDK (context-ai, langsmith, helicone, langfuse, humanloop, MCP SDK). Informational finding so reviewers audit the vendor's OAuth-scope footprint before merging. Raised to MEDIUM because the April 19 2026 Vercel \u00d7 Context.ai incident showed a single vendor compromise can turn into a production breach via transitive OAuth grants.",
            "remediation": "Pin the SDK to an exact version, audit the OAuth scopes it requests, and keep any deployment-level grants (Vercel, GCP, Workspace) in a secrets vault \u2014 never in a committed env file. See Vercel's bulletin for sensitive-env-var guidance: https://vercel.com/kb/bulletin/vercel-april-2026-security-incident"
          },
          {
            "tool_name": "agent-audit-kit",
            "severity": "high",
            "category": "supply-chain",
            "file_path": "src/index.ts",
            "line_number": null,
            "rule_identifier": "AAK-ANTHROPIC-SDK-001",
            "title": "MCP server built on the upstream SDK without STDIO sanitizer",
            "description": "Repository declares a dependency on the upstream Anthropic / ModelContextProtocol SDK (Python `mcp` / `modelcontextprotocol`, TS `@modelcontextprotocol/sdk`, Java `io.modelcontextprotocol:*`, Rust `mcp` / `modelcontextprotocol`) and exposes a STDIO transport (`StdioServerTransport`, `stdio_server`, etc.) without a sanitizer on argv assembly. Anthropic declined to CVE this as working as designed \u2014 sanitization is the developer's responsibility. The OX Security disclosure on 2026-04-15 rolled up L",
            "remediation": "Wrap every argv the STDIO transport builds in an allow-list sanitizer \u2014 `shlex.quote` in Python, `execFile` with an explicit argv array in Node, equivalent in Java/Rust. OR switch the transport off STDIO (`transports=['http']` / `['sse']`). If you have deliberately accepted the risk, add `accepts_stdio_risk: true` plus a `justification:` field in `.agent-audit-kit.yml`."
          },
          {
            "tool_name": "agent-audit-kit",
            "severity": "medium",
            "category": "supply-chain",
            "file_path": ".github/workflows/publish.yml",
            "line_number": 30,
            "rule_identifier": "AAK-GHA-IMMUTABLE-001",
            "title": "Third-party GitHub Action not pinned by full commit SHA",
            "description": "A workflow in `.github/workflows/` uses a third-party Action (`owner/action@ref`) where `ref` is a tag or branch name instead of a 40-character commit SHA. A repo-takeover of the Action's publisher can re-point the tag to a malicious revision \u2014 the downstream repo consuming it will happily run the new code with `GITHUB_TOKEN` and write permissions. GitHub's April 2026 Security Roadmap ships Immutable Actions and makes SHA pinning the default policy.",
            "remediation": "Repin third-party Actions to a 40-character commit SHA and add a `# v1.2.3`-style trailing comment for humans. First-party Actions under `actions/` and `github/` are exempt (they now ship Immutable Actions). Dependabot will auto-bump SHA pins when `update-type: all` is set."
          },
          {
            "tool_name": "agent-audit-kit",
            "severity": "medium",
            "category": "supply-chain",
            "file_path": ".github/workflows/publish.yml",
            "line_number": 46,
            "rule_identifier": "AAK-GHA-IMMUTABLE-001",
            "title": "Third-party GitHub Action not pinned by full commit SHA",
            "description": "A workflow in `.github/workflows/` uses a third-party Action (`owner/action@ref`) where `ref` is a tag or branch name instead of a 40-character commit SHA. A repo-takeover of the Action's publisher can re-point the tag to a malicious revision \u2014 the downstream repo consuming it will happily run the new code with `GITHUB_TOKEN` and write permissions. GitHub's April 2026 Security Roadmap ships Immutable Actions and makes SHA pinning the default policy.",
            "remediation": "Repin third-party Actions to a 40-character commit SHA and add a `# v1.2.3`-style trailing comment for humans. First-party Actions under `actions/` and `github/` are exempt (they now ship Immutable Actions). Dependabot will auto-bump SHA pins when `update-type: all` is set."
          },
          {
            "tool_name": "agent-audit-kit",
            "severity": "medium",
            "category": "supply-chain",
            "file_path": ".github/workflows/ci.yml",
            "line_number": 23,
            "rule_identifier": "AAK-GHA-IMMUTABLE-001",
            "title": "Third-party GitHub Action not pinned by full commit SHA",
            "description": "A workflow in `.github/workflows/` uses a third-party Action (`owner/action@ref`) where `ref` is a tag or branch name instead of a 40-character commit SHA. A repo-takeover of the Action's publisher can re-point the tag to a malicious revision \u2014 the downstream repo consuming it will happily run the new code with `GITHUB_TOKEN` and write permissions. GitHub's April 2026 Security Roadmap ships Immutable Actions and makes SHA pinning the default policy.",
            "remediation": "Repin third-party Actions to a 40-character commit SHA and add a `# v1.2.3`-style trailing comment for humans. First-party Actions under `actions/` and `github/` are exempt (they now ship Immutable Actions). Dependabot will auto-bump SHA pins when `update-type: all` is set."
          }
        ],
        "execution_duration_seconds": 9.041763900997466,
        "status": "complete",
        "metadata": {
          "source": "pypi",
          "source_url": "https://pypi.org/project/agent-audit-kit/0.3.26/",
          "report_type": "agent-audit-kit-sast",
          "files_scanned": 19,
          "install_command": "pip install --require-hashes -r docker/scanner-base/agent-audit-kit/requirements.txt",
          "rules_evaluated": 211,
          "severity_counts": {
            "low": 1,
            "high": 1,
            "medium": 4,
            "critical": 0,
            "informational": 0
          }
        },
        "display_score": 63.0,
        "display_badge": "Caution"
      },
      {
        "scanner_name": "bearer",
        "scanner_version": "2.0.2",
        "score": 100.0,
        "scanner_badge": "Verified",
        "findings": [],
        "execution_duration_seconds": 9.617283749001217,
        "status": "complete",
        "metadata": {
          "source": "github-releases",
          "source_url": "https://github.com/Bearer/bearer",
          "report_type": "security",
          "rules_loaded": 1,
          "install_command": "curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | sh -s -- -b /usr/local/bin \"v2.0.2\""
        },
        "display_score": 100.0,
        "display_badge": "Verified"
      },
      {
        "scanner_name": "nerlo-behavioral",
        "scanner_version": "0.1.0",
        "score": 100.0,
        "scanner_badge": "Verified",
        "findings": [],
        "execution_duration_seconds": 44.70559732000402,
        "status": "complete",
        "metadata": {
          "source": "nerlo-original",
          "source_url": "https://github.com/nerlo-ai/nerlo",
          "report_type": "nerlo-behavioral",
          "ruleset_path": "/opt/nerlo-rules/exfiltration.yaml",
          "files_scanned": 4,
          "install_command": "pip install 'semgrep==1.97.0'"
        },
        "display_score": 100.0,
        "display_badge": "Verified"
      },
      {
        "scanner_name": "nerlo-install-instruction",
        "scanner_version": "0.1.0",
        "score": 100.0,
        "scanner_badge": "Verified",
        "findings": [],
        "execution_duration_seconds": 44.12303324499226,
        "status": "complete",
        "metadata": {
          "source": "nerlo-original",
          "source_url": "https://github.com/nerlo-ai/nerlo",
          "report_type": "nerlo-install-instruction",
          "ruleset_path": "/opt/nerlo-rules/install_instructions.yaml",
          "files_scanned": 3,
          "install_command": "pip install 'semgrep==1.97.0'"
        },
        "display_score": 100.0,
        "display_badge": "Verified"
      },
      {
        "scanner_name": "trivy",
        "scanner_version": "0.71.0",
        "score": 0.0,
        "scanner_badge": "Unsafe",
        "findings": [
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-29087",
            "title": "@hono/node-server has authorization bypass for protected static paths via encoded slashes in Serve Static Middleware",
            "description": "@hono/node-server allows running the Hono application on Node.js. Prior to version 1.19.10, when using @hono/node-server's static file serving together with route-based middleware protections (e.g. protecting /admin/*), inconsistent URL decoding can allow protected static resources to be accessed without authorization. In particular, paths containing encoded slashes (%2F) may be evaluated differently by routing/middleware matching versus static file path resolution, enabling a bypass where middl",
            "remediation": "Upgrade @hono/node-server from 1.19.9 to 1.19.10 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-39406",
            "title": "@hono/node-server: Middleware bypass via repeated slashes in serveStatic",
            "description": "@hono/node-server allows running the Hono application on Node.js. Prior to 1.19.13, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in 1.19.13.",
            "remediation": "Upgrade @hono/node-server from 1.19.9 to 1.19.13 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2025-69873",
            "title": "ajv: ReDoS via $data reference",
            "description": "ajv (Another JSON Schema Validator) before 8.18.0 is vulnerable to Regular Expression Denial of Service (ReDoS) when the $data option is enabled. The pattern keyword accepts runtime data via JSON Pointer syntax ($data reference), which is passed directly to the JavaScript RegExp() constructor without validation. An attacker can inject a malicious regex pattern (e.g., \"^(a|a)*$\") combined with crafted input to cause catastrophic backtracking. A 31-character payload causes approximately 44 seconds",
            "remediation": "Upgrade ajv from 8.17.1 to 8.18.0, 6.14.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "low",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-12590",
            "title": "body-parser: body-parser: Denial of Service via invalid limit option",
            "description": "Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-pars",
            "remediation": "Upgrade body-parser from 2.2.2 to 1.20.6, 2.3.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-30827",
            "title": "express-rate-limit: express-rate-limit: Denial of Service for IPv4 clients due to incorrect IPv6 subnet masking",
            "description": "express-rate-limit is a basic rate-limiting middleware for Express. In versions starting from 8.0.0 and prior to versions 8.0.2, 8.1.1, 8.2.2, and 8.3.0, the default keyGenerator in express-rate-limit applies IPv6 subnet masking (/56 by default) to all addresses that net.isIPv6() returns true for. This includes IPv4-mapped IPv6 addresses (::ffff:x.x.x.x), which Node.js returns as request.ip on dual-stack servers. Because the first 80 bits of all IPv4-mapped addresses are zero, a /56 (or any /32 ",
            "remediation": "Upgrade express-rate-limit from 8.2.1 to 8.2.2, 8.1.1, 8.0.2 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-6321",
            "title": "fast-uri: fast-uri: Path traversal vulnerability allows bypass of security policies",
            "description": "fast-uri decoded percent-encoded path separators and dot segments before applying dot-segment removal in its normalize() and equal() functions. Encoded path data was treated like real slashes and parent-directory references, so distinct URIs could collapse onto the same normalized path. Applications that normalize or compare attacker-controlled URLs to enforce path-based policy can be bypassed, with a path that appears confined under an allowed prefix normalizing to a different location. Version",
            "remediation": "Upgrade fast-uri from 3.1.0 to 3.1.1 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-6322",
            "title": "fast-uri: fast-uri: URI authority bypass due to improper delimiter handling",
            "description": "fast-uri normalize() decoded percent-encoded authority delimiters inside the host component and then re-emitted them as raw delimiters during serialization. A host that combined an allowed domain, an encoded at-sign, and a different domain was re-emitted with the at-sign as a raw userinfo separator, changing the URI's authority to the second domain. Applications that normalize untrusted URLs before host allowlist checks, redirect validation, or outbound request routing can be steered to a differ",
            "remediation": "Upgrade fast-uri from 3.1.0 to 3.1.2 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-29045",
            "title": "Hono vulnerable to arbitrary file access via serveStatic vulnerability ",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization. The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.4 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-54290",
            "title": "hono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, with credentials: true and no explicit origin (the default wildcard), the CORS Middleware reflects the request's Origin and sends Access-Control-Allow-Credentials: true. Any site can then make credentialed cross-origin requests and read the responses, exposing cookie-authenticated endpoints to arbitrary origins. This vulnerability is fixed in 4.12.25.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-29085",
            "title": "Hono Vulnerable to SSE Control Field Injection via CR/LF in writeSSE()",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using streamSSE() in Streaming Helper, the event, id, and retry fields were not validated for carriage return (\\r) or newline (\\n) characters. Because the SSE protocol uses line breaks as field delimiters, this could allow injection of additional SSE fields within the same event frame if untrusted input was passed into these fields. This issue has been patched in version 4.12.4.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.4 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-29086",
            "title": "Hono Vulnerable to Cookie Attribute Injection via Unsanitized domain and path in setCookie()",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, the setCookie() utility did not validate semicolons (;), carriage returns (\\r), or newline characters (\\n) in the domain and path options when constructing the Set-Cookie header. Because cookie attributes are delimited by semicolons, this could allow injection of additional cookie attributes if untrusted input was passed into these fields. This issue has been patched in version 4.12.4.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.4 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-39407",
            "title": "Hono: Middleware bypass via repeated slashes in serveStatic",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in ",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-39408",
            "title": "Hono: Path traversal in toSSG() allows writing files outside the output directory",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a path traversal issue in toSSG() allows files to be written outside the configured output directory during static site generation. When using dynamic route parameters via ssgParams, specially crafted values can cause generated file paths to escape the intended output directory. This vulnerability is fixed in 4.12.12.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-39409",
            "title": "Hono has incorrect IP matching in ipRestriction() for IPv4-mapped IPv6 addresses",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, ipRestriction() does not canonicalize IPv4-mapped IPv6 client addresses (e.g. ::ffff:127.0.0.1) before applying IPv4 allow or deny rules. In environments such as Node.js dual-stack, this can cause IPv4 rules to fail to match, leading to unintended authorization behavior. This vulnerability is fixed in 4.12.12.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-39410",
            "title": "Hono: Non-breaking space prefix bypass in cookie name handling in getCookie()",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a discrepancy between browser cookie parsing and parse() handling allows cookie prefix protections to be bypassed. Cookie names that are treated as distinct by the browser may be normalized to the same key by parse(), allowing attacker-controlled cookies to override legitimate ones. This vulnerability is fixed in 4.12.12.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-44455",
            "title": "hono/jsx has Unvalidated JSX Tag Names that May Allow HTML Injection",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.16, Improper handling of JSX element tag names in hono/jsx allowed unvalidated tag names to be directly inserted into the generated HTML output. When untrusted input is used as a tag name via the programmatic jsx() or createElement() APIs during server-side rendering, specially crafted values may break out of the intended element context and inject unintended HTML. This vulnerability is fixed in 4",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.16 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-44456",
            "title": "Hono: bodyLimit() can be bypassed for chunked / unknown-length requests",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.16, bodyLimit() does not reliably enforce maxSize for requests without a usable Content-Length (e.g. Transfer-Encoding: chunked). Oversized requests can reach handlers and return 200 instead of 413. This vulnerability is fixed in 4.12.16.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.16 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-44457",
            "title": "Hono's Cache Middleware ignores Vary: Authorization / Vary: Cookie leading to cross-user cache leakage",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.18, Cache Middleware does not skip caching for responses that declare per-user variance via Vary: Authorization or Vary: Cookie. As a result, a response cached for one authenticated user may be served to subsequent requests from different users. This vulnerability is fixed in 4.12.18.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.18 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-44458",
            "title": "Hono has CSS Declaration Injection via Style Object Values in JSX SSR",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.18, the JSX renderer escapes style attribute object values for HTML but not for CSS. Untrusted input in a style object value or property name can therefore inject additional CSS declarations into the rendered style attribute. The impact is limited to CSS and does not allow JavaScript execution or HTML attribute breakout. This vulnerability is fixed in 4.12.18.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.18 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-47673",
            "title": "Hono: JWT middleware accepts any Authorization scheme, not only Bearer",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.21, the jwt and jwk middlewares do not verify that the Authorization header value uses theBearer scheme. Any two-part header value \u2014 regardless of the scheme name in the first position \u2014 proceeds to JWT verification. A request presenting a valid JWT under a non-Bearer scheme identifier (such as Basic or Token) is authenticated identically to a correctly formed Bearer request. This vulnerability is",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.21 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-47674",
            "title": "Hono: IP Restriction bypasses static deny rules for non-canonical IPv6 ",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.21, the ip-restriction middleware (hono/ip-restriction) compares incoming IP addresses against configured deny and allow rules using string equality after partial normalization. Non-canonical IPv6 representations of an address already listed in a static rule \u2014 such as compressed forms, explicit-zero forms, or hex-notation IPv4-mapped addresses \u2014 do not match the normalized rule entry, causing the ",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.21 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-47675",
            "title": "Hono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie injection",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.21, the serialize() function in hono/cookie validates domain and path options against characters that corrupt Set-Cookie header syntax (;, \\r, \\n), but does not apply the same validation to sameSite and priority. An application that passes user-controlled input into either option may produce a Set-Cookie response header containing attacker-chosen additional attributes. This vulnerability is fixed ",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.21 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-47676",
            "title": "Hono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.21, app.mount() strips the mount prefix from the incoming request path using the raw URL pathname, while route matching is performed against the percent-decoded path. This inconsistency causes the prefix to be stripped at the wrong position when the path contains percent-encoded multi-byte characters, resulting in the mounted sub-application receiving an incorrect path. This vulnerability is fixed",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.21 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-54286",
            "title": "hono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, on Windows hosts, an encoded backslash (%5C) in the request path decodes to \\, which the Windows path resolver treats as a separator. serve-static then resolves a single URL segment such as admin\\secret.txt into a nested file under the root and serves it, letting an attacker read static files meant to be protected behind prefix-mounted middleware. This vulnerability is fixed in 4.12.25.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-54287",
            "title": "hono: AWS Lambda adapter merges multiple `Set-Cookie` headers into one value, dropping cookies on ALB single-header and Lattice",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, on AWS Lambda, the ALB single-header response and the VPC Lattice v2 response join multiple Set-Cookie headers into one comma-separated value. Because commas also appear inside cookie attributes (for example Expires dates), clients cannot split the value back into individual cookies and silently drop or misparse them. This vulnerability is fixed in 4.12.25.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-54288",
            "title": "hono: Body Limit Middleware can be bypassed on AWS Lambda by understating `Content-Length`",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, the Body Limit Middleware trusts the request's Content-Length header to decide whether a body is within the limit. On AWS Lambda (API Gateway v1/v2, ALB, VPC Lattice, and Lambda@Edge) the body is delivered fully buffered and the adapter builds the request with the client-declared Content-Length, which need not match the actual payload. A client can declare a tiny Content-Length while sending a",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-54289",
            "title": "hono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, on AWS Lambda@Edge, CloudFront delivers a request header that appears more than once as several separate entries. The adapter writes each value with Headers.set instead of Headers.append, so every value overwrites the previous one and only the last reaches the application. Repeated request headers such as X-Forwarded-For, Forwarded, and Via are silently truncated to a single value. Request mid",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.25 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-56761",
            "title": "hono Improperly Handles JSX Attribute Names Allows HTML Injection in hono/jsx SSR",
            "description": "hono before 4.12.14 contains an html injection vulnerability in jsx server-side rendering that allows attackers to inject unintended html by using malformed attribute names. Attackers can craft specially crafted attribute keys containing characters like quotes or angle brackets to break html tag boundaries and inject arbitrary attributes or elements.",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.14 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-26pp-8wgv-hjvm",
            "title": "Hono missing validation of cookie name on write path in setCookie()",
            "description": "## Summary\n\nCookie names are not validated on the write path when using `setCookie()`, `serialize()`, or `serializeSigned()` to generate Set-Cookie headers.\n\nWhile certain cookie attributes such as domain and path are validated, the cookie name itself may contain invalid characters.\n\nThis results in inconsistent handling of cookie names between parsing (read path) and serialization (write path).\n\n## Details\n\nWhen applications use `setCookie()`, `serialize()`, or `serializeSigned()` with a user-c",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.12 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-v8w9-8mx6-g223",
            "title": "Hono vulnerable to Prototype Pollution possible through __proto__ key allowed in parseBody({ dot: true })",
            "description": "## Summary\n\nWhen using `parseBody({ dot: true })` in HonoRequest, specially crafted form field names such as `__proto__.x` could create objects containing a `__proto__` property.\n\nIf the parsed result is later merged into regular JavaScript objects using unsafe merge patterns, this may lead to prototype pollution in the target object.\n\n## Details\n\nThe `parseBody({ dot: true })` feature supports dot notation to construct nested objects from form field names.\n\nIn previous versions, the `__proto__`",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.7 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "low",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-44459",
            "title": "Hono has improper validation of NumericDate claims (exp, nbf, iat) in JWT verify()",
            "description": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.18, improper validation of the JWT NumericDate claims exp, nbf, and iat in hono/utils/jwt allows tokens with non-spec-compliant claim values to silently bypass time-based checks. This issue is not exploitable by an anonymous attacker; it only manifests when a malformed claim value reaches verify() \u2014 typically when the application itself issues such tokens, or when the signing key is otherwise unde",
            "remediation": "Upgrade hono from 4.11.7 to 4.12.18 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "low",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-gq3j-xvxp-8hrf",
            "title": "Hono added timing comparison hardening in basicAuth and bearerAuth",
            "description": "## Summary\n\nThe `basicAuth` and `bearerAuth` middlewares previously used a comparison that was not fully timing-safe.\n\nThe `timingSafeEqual` function used normal string equality (`===`) when comparing hash values. This comparison may stop early if values differ, which can theoretically cause small timing differences.\n\nThe implementation has been updated to use a safer comparison method.\n\n\n## Details\n\nThe issue was caused by the use of normal string equality (`===`) when comparing hash values ins",
            "remediation": "Upgrade hono from 4.11.7 to 4.11.10 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-42338",
            "title": "ip-address: ip-address: Cross-site scripting via improper HTML escaping of untrusted input",
            "description": "ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.1.1, Address6.group() and Address6.link() do not HTML-escape attacker-controlled content before embedding it in the HTML strings they return, and AddressError.parseMessage (emitted by the Address6 constructor for invalid input) can contain unescaped attacker-controlled content in one branch. An application that (1) passes untrusted input to Address6 and (2) renders the output of these methods,",
            "remediation": "Upgrade ip-address from 10.0.1 to 10.1.1 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-4926",
            "title": "path-to-regexp: path-to-regexp: Denial of Service via crafted regular expressions",
            "description": "Impact:\n\nA bad regular expression is generated any time you have multiple sequential optional groups (curly brace syntax), such as `{a}{b}{c}:z`. The generated regex grows exponentially with the number of groups, causing denial of service.\n\nPatches:\n\nFixed in version 8.4.0.\n\nWorkarounds:\n\nLimit the number of sequential optional groups in route patterns. Avoid passing user-controlled input as route patterns.",
            "remediation": "Upgrade path-to-regexp from 8.2.0 to 8.4.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-4923",
            "title": "path-to-regexp: path-to-regexp: Denial of Service via specially crafted paths with multiple wildcards",
            "description": "Impact:\n\nWhen using multiple wildcards, combined with at least one parameter, a regular expression can be generated that is vulnerable to ReDoS. This backtracking vulnerability requires the second wildcard to be somewhere other than the end of the path.\n\nUnsafe examples:\n\n/*foo-*bar-:baz\n/*a-:b-*c-:d\n/x/*a-:b/*c/y\n\nSafe examples:\n\n/*foo-:bar\n/*foo-:bar-*baz\n\nPatches:\n\nUpgrade to version 8.4.0.\n\nWorkarounds:\n\nIf you are using multiple wildcard parameters, you can check the regex output with a too",
            "remediation": "Upgrade path-to-regexp from 8.2.0 to 8.4.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-8723",
            "title": "### Summary    `qs.stringify` throws `TypeError` when called with `arr ...",
            "description": "### Summary\n\n\n\n`qs.stringify` throws `TypeError` when called with `arrayFormat: 'comma'` and `encodeValuesOnly: true` on an array containing `null` or `undefined`. The throw is synchronous and not handled by any of qs's null-related options (`skipNulls`, `strictNullHandling`).\n\n\n\n### Details\n\n\n\nIn the comma + `encodeValuesOnly` branch, `lib/stringify.js:145` mapped the array through the raw encoder before joining:\n\n\n\n```js\n\n\n\nobj = utils.maybeMap(obj, encoder);\n\n\n\n```\n\n\n\n`utils.encode` (`lib/uti",
            "remediation": "Upgrade qs from 6.14.1 to 6.15.2 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "low",
            "category": "pnpm",
            "file_path": "pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "CVE-2026-2391",
            "title": "qs: qs's arrayLimit bypass in comma parsing allows denial of service",
            "description": "### Summary\nThe `arrayLimit` option in qs does not enforce limits for comma-separated values when `comma: true` is enabled, allowing attackers to cause denial-of-service via memory exhaustion. This is a bypass of the array limit enforcement, similar to the bracket notation bypass addressed in GHSA-6rw7-vpxm-498p (CVE-2025-15284).\n\n### Details\nWhen the `comma` option is set to `true` (not the default, but configurable in applications), qs allows parsing comma-separated strings as arrays (e.g., `?",
            "remediation": "Upgrade qs from 6.14.1 to 6.14.2 or later"
          }
        ],
        "execution_duration_seconds": 1.439935949005303,
        "status": "complete",
        "metadata": {
          "source": "github-releases",
          "source_url": "https://github.com/aquasecurity/trivy/releases/tag/v0.71.0",
          "report_type": "filesystem-vulnerability",
          "install_command": "curl -sfL -o /tmp/trivy.deb https://github.com/aquasecurity/trivy/releases/download/v0.71.0/trivy_0.71.0_Linux-64bit.deb && echo '<sha256>  /tmp/trivy.deb' | sha256sum -c - && dpkg -i /tmp/trivy.deb",
          "severity_counts": {
            "low": 4,
            "high": 7,
            "medium": 26,
            "critical": 0,
            "informational": 0
          },
          "manifests_scanned": [
            "pnpm-lock.yaml"
          ]
        },
        "display_score": 0.0,
        "display_badge": "Unsafe"
      },
      {
        "scanner_name": "osv-scanner",
        "scanner_version": "2.3.8",
        "score": 0.0,
        "scanner_badge": "Unsafe",
        "findings": [
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-92pp-h63x-v22m",
            "title": "GHSA-92pp-h63x-v22m \u2014 npm @hono/node-server@1.19.9",
            "description": "aliases: CVE-2026-39406, GHSA-92pp-h63x-v22m | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-wc8c-qw6v-h7f6",
            "title": "GHSA-wc8c-qw6v-h7f6 \u2014 npm @hono/node-server@1.19.9",
            "description": "aliases: CVE-2026-29087, GHSA-wc8c-qw6v-h7f6 | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-2g4f-4pwh-qvx6",
            "title": "GHSA-2g4f-4pwh-qvx6 \u2014 npm ajv@8.17.1",
            "description": "aliases: CVE-2025-69873, GHSA-2g4f-4pwh-qvx6 | CVSS: 5.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "low",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-v422-hmwv-36x6",
            "title": "GHSA-v422-hmwv-36x6 \u2014 npm body-parser@2.2.2",
            "description": "aliases: CVE-2026-12590, GHSA-v422-hmwv-36x6 | CVSS: 3.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-46wh-pxpv-q5gq",
            "title": "GHSA-46wh-pxpv-q5gq \u2014 npm express-rate-limit@8.2.1",
            "description": "aliases: CVE-2026-30827, GHSA-46wh-pxpv-q5gq | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-q3j6-qgpj-74h6",
            "title": "GHSA-q3j6-qgpj-74h6 \u2014 npm fast-uri@3.1.0",
            "description": "aliases: CVE-2026-6321, GHSA-q3j6-qgpj-74h6 | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-v39h-62p7-jpjc",
            "title": "GHSA-v39h-62p7-jpjc \u2014 npm fast-uri@3.1.0",
            "description": "aliases: CVE-2026-6322, GHSA-v39h-62p7-jpjc | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-26pp-8wgv-hjvm",
            "title": "GHSA-26pp-8wgv-hjvm \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-56762, GHSA-26pp-8wgv-hjvm | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-2gcr-mfcq-wcc3",
            "title": "GHSA-2gcr-mfcq-wcc3 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-47676, GHSA-2gcr-mfcq-wcc3 | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-3hrh-pfw6-9m5x",
            "title": "GHSA-3hrh-pfw6-9m5x \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-47675, GHSA-3hrh-pfw6-9m5x | CVSS: 4.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-458j-xx4x-4375",
            "title": "GHSA-458j-xx4x-4375 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-56761, GHSA-458j-xx4x-4375 | CVSS: 4.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-5pq2-9x2x-5p6w",
            "title": "GHSA-5pq2-9x2x-5p6w \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-29086, GHSA-5pq2-9x2x-5p6w | CVSS: 5.4",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-69xw-7hcm-h432",
            "title": "GHSA-69xw-7hcm-h432 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-44455, GHSA-69xw-7hcm-h432 | CVSS: 4.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-88fw-hqm2-52qc",
            "title": "GHSA-88fw-hqm2-52qc \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-54290, GHSA-88fw-hqm2-52qc | CVSS: 7.1",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-9vqf-7f2p-gf9v",
            "title": "GHSA-9vqf-7f2p-gf9v \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-44456, GHSA-9vqf-7f2p-gf9v | CVSS: 6.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-f577-qrjj-4474",
            "title": "GHSA-f577-qrjj-4474 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-47673, GHSA-f577-qrjj-4474 | CVSS: 4.8",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "low",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-gq3j-xvxp-8hrf",
            "title": "GHSA-gq3j-xvxp-8hrf \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-56764, GHSA-gq3j-xvxp-8hrf | CVSS: 3.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "low",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-hm8q-7f3q-5f36",
            "title": "GHSA-hm8q-7f3q-5f36 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-44459, GHSA-hm8q-7f3q-5f36 | CVSS: 3.8",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-j6c9-x7qj-28xf",
            "title": "GHSA-j6c9-x7qj-28xf \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-54287, GHSA-j6c9-x7qj-28xf | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-p6xx-57qc-3wxr",
            "title": "GHSA-p6xx-57qc-3wxr \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-29085, GHSA-p6xx-57qc-3wxr | CVSS: 6.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-p77w-8qqv-26rm",
            "title": "GHSA-p77w-8qqv-26rm \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-44457, GHSA-p77w-8qqv-26rm | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-q5qw-h33p-qvwr",
            "title": "GHSA-q5qw-h33p-qvwr \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-29045, GHSA-q5qw-h33p-qvwr | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-qp7p-654g-cw7p",
            "title": "GHSA-qp7p-654g-cw7p \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-44458, GHSA-qp7p-654g-cw7p | CVSS: 4.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-r5rp-j6wh-rvv4",
            "title": "GHSA-r5rp-j6wh-rvv4 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-39410, GHSA-r5rp-j6wh-rvv4 | CVSS: 4.8",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-rv63-4mwf-qqc2",
            "title": "GHSA-rv63-4mwf-qqc2 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-54288, GHSA-rv63-4mwf-qqc2 | CVSS: 6.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-v8w9-8mx6-g223",
            "title": "GHSA-v8w9-8mx6-g223 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-56763, GHSA-v8w9-8mx6-g223 | CVSS: 4.8",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-wgpf-jwqj-8h8p",
            "title": "GHSA-wgpf-jwqj-8h8p \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-54289, GHSA-wgpf-jwqj-8h8p | CVSS: 4.8",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-wmmm-f939-6g9c",
            "title": "GHSA-wmmm-f939-6g9c \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-39407, GHSA-wmmm-f939-6g9c | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-wwfh-h76j-fc44",
            "title": "GHSA-wwfh-h76j-fc44 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-54286, GHSA-wwfh-h76j-fc44 | CVSS: 5.9",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-xf4j-xp2r-rqqx",
            "title": "GHSA-xf4j-xp2r-rqqx \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-39408, GHSA-xf4j-xp2r-rqqx | CVSS: 5.9",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-xpcf-pg52-r92g",
            "title": "GHSA-xpcf-pg52-r92g \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-39409, GHSA-xpcf-pg52-r92g | CVSS: 6.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-xrhx-7g5j-rcj5",
            "title": "GHSA-xrhx-7g5j-rcj5 \u2014 npm hono@4.11.7",
            "description": "aliases: CVE-2026-47674, GHSA-xrhx-7g5j-rcj5 | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-v2v4-37r5-5v8g",
            "title": "GHSA-v2v4-37r5-5v8g \u2014 npm ip-address@10.0.1",
            "description": "aliases: CVE-2026-42338, GHSA-v2v4-37r5-5v8g | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-52cp-r559-cp3m",
            "title": "GHSA-52cp-r559-cp3m \u2014 npm js-yaml@3.14.1",
            "description": "aliases: CVE-2026-59869, GHSA-52cp-r559-cp3m | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-h67p-54hq-rp68",
            "title": "GHSA-h67p-54hq-rp68 \u2014 npm js-yaml@3.14.1",
            "description": "aliases: CVE-2026-53550, GHSA-h67p-54hq-rp68 | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-mh29-5h37-fv8m",
            "title": "GHSA-mh29-5h37-fv8m \u2014 npm js-yaml@3.14.1",
            "description": "aliases: CVE-2025-64718, GHSA-mh29-5h37-fv8m | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-52cp-r559-cp3m",
            "title": "GHSA-52cp-r559-cp3m \u2014 npm js-yaml@4.1.1",
            "description": "aliases: CVE-2026-59869, GHSA-52cp-r559-cp3m | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-h67p-54hq-rp68",
            "title": "GHSA-h67p-54hq-rp68 \u2014 npm js-yaml@4.1.1",
            "description": "aliases: CVE-2026-53550, GHSA-h67p-54hq-rp68 | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-27v5-c462-wpq7",
            "title": "GHSA-27v5-c462-wpq7 \u2014 npm path-to-regexp@8.2.0",
            "description": "aliases: CVE-2026-4923, GHSA-27v5-c462-wpq7 | CVSS: 5.9",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-j3q9-mxjg-w52f",
            "title": "GHSA-j3q9-mxjg-w52f \u2014 npm path-to-regexp@8.2.0",
            "description": "aliases: CVE-2026-4926, GHSA-j3q9-mxjg-w52f | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-3v7f-55p6-f55p",
            "title": "GHSA-3v7f-55p6-f55p \u2014 npm picomatch@2.3.1",
            "description": "aliases: CVE-2026-33672, GHSA-3v7f-55p6-f55p | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-c2c7-rcm5-vvqj",
            "title": "GHSA-c2c7-rcm5-vvqj \u2014 npm picomatch@2.3.1",
            "description": "aliases: CVE-2026-33671, GHSA-c2c7-rcm5-vvqj | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-q8mj-m7cp-5q26",
            "title": "GHSA-q8mj-m7cp-5q26 \u2014 npm qs@6.14.1",
            "description": "aliases: CVE-2026-8723, GHSA-q8mj-m7cp-5q26 | CVSS: 6.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "low",
            "category": "npm",
            "file_path": "/repo/pnpm-lock.yaml",
            "line_number": null,
            "rule_identifier": "GHSA-w7fw-mjwx-w883",
            "title": "GHSA-w7fw-mjwx-w883 \u2014 npm qs@6.14.1",
            "description": "aliases: CVE-2026-2391, GHSA-w7fw-mjwx-w883 | CVSS: 3.7",
            "remediation": null
          }
        ],
        "execution_duration_seconds": 19.45738077799615,
        "status": "complete",
        "metadata": {
          "source": "github-releases",
          "source_url": "https://github.com/google/osv-scanner/releases/tag/v2.3.8",
          "report_type": "osv-vulnerability",
          "ecosystems_seen": [
            "npm"
          ],
          "install_command": "curl -sfL -o /usr/local/bin/osv-scanner https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_linux_amd64 && echo '<sha256>  /usr/local/bin/osv-scanner' | sha256sum -c - && chmod +x /usr/local/bin/osv-scanner",
          "severity_counts": {
            "low": 4,
            "high": 10,
            "medium": 30,
            "critical": 0,
            "informational": 0
          },
          "manifests_scanned": [
            "/repo/pnpm-lock.yaml"
          ],
          "finding_id_aliases": {
            "GHSA-26pp-8wgv-hjvm": [
              "CVE-2026-56762"
            ],
            "GHSA-27v5-c462-wpq7": [
              "CVE-2026-4923"
            ],
            "GHSA-2g4f-4pwh-qvx6": [
              "CVE-2025-69873"
            ],
            "GHSA-2gcr-mfcq-wcc3": [
              "CVE-2026-47676"
            ],
            "GHSA-3hrh-pfw6-9m5x": [
              "CVE-2026-47675"
            ],
            "GHSA-3v7f-55p6-f55p": [
              "CVE-2026-33672"
            ],
            "GHSA-458j-xx4x-4375": [
              "CVE-2026-56761"
            ],
            "GHSA-46wh-pxpv-q5gq": [
              "CVE-2026-30827"
            ],
            "GHSA-52cp-r559-cp3m": [
              "CVE-2026-59869",
              "CVE-2026-59869"
            ],
            "GHSA-5pq2-9x2x-5p6w": [
              "CVE-2026-29086"
            ],
            "GHSA-69xw-7hcm-h432": [
              "CVE-2026-44455"
            ],
            "GHSA-88fw-hqm2-52qc": [
              "CVE-2026-54290"
            ],
            "GHSA-92pp-h63x-v22m": [
              "CVE-2026-39406"
            ],
            "GHSA-9vqf-7f2p-gf9v": [
              "CVE-2026-44456"
            ],
            "GHSA-c2c7-rcm5-vvqj": [
              "CVE-2026-33671"
            ],
            "GHSA-f577-qrjj-4474": [
              "CVE-2026-47673"
            ],
            "GHSA-gq3j-xvxp-8hrf": [
              "CVE-2026-56764"
            ],
            "GHSA-h67p-54hq-rp68": [
              "CVE-2026-53550",
              "CVE-2026-53550"
            ],
            "GHSA-hm8q-7f3q-5f36": [
              "CVE-2026-44459"
            ],
            "GHSA-j3q9-mxjg-w52f": [
              "CVE-2026-4926"
            ],
            "GHSA-j6c9-x7qj-28xf": [
              "CVE-2026-54287"
            ],
            "GHSA-mh29-5h37-fv8m": [
              "CVE-2025-64718"
            ],
            "GHSA-p6xx-57qc-3wxr": [
              "CVE-2026-29085"
            ],
            "GHSA-p77w-8qqv-26rm": [
              "CVE-2026-44457"
            ],
            "GHSA-q3j6-qgpj-74h6": [
              "CVE-2026-6321"
            ],
            "GHSA-q5qw-h33p-qvwr": [
              "CVE-2026-29045"
            ],
            "GHSA-q8mj-m7cp-5q26": [
              "CVE-2026-8723"
            ],
            "GHSA-qp7p-654g-cw7p": [
              "CVE-2026-44458"
            ],
            "GHSA-r5rp-j6wh-rvv4": [
              "CVE-2026-39410"
            ],
            "GHSA-rv63-4mwf-qqc2": [
              "CVE-2026-54288"
            ],
            "GHSA-v2v4-37r5-5v8g": [
              "CVE-2026-42338"
            ],
            "GHSA-v39h-62p7-jpjc": [
              "CVE-2026-6322"
            ],
            "GHSA-v422-hmwv-36x6": [
              "CVE-2026-12590"
            ],
            "GHSA-v8w9-8mx6-g223": [
              "CVE-2026-56763"
            ],
            "GHSA-w7fw-mjwx-w883": [
              "CVE-2026-2391"
            ],
            "GHSA-wc8c-qw6v-h7f6": [
              "CVE-2026-29087"
            ],
            "GHSA-wgpf-jwqj-8h8p": [
              "CVE-2026-54289"
            ],
            "GHSA-wmmm-f939-6g9c": [
              "CVE-2026-39407"
            ],
            "GHSA-wwfh-h76j-fc44": [
              "CVE-2026-54286"
            ],
            "GHSA-xf4j-xp2r-rqqx": [
              "CVE-2026-39408"
            ],
            "GHSA-xpcf-pg52-r92g": [
              "CVE-2026-39409"
            ],
            "GHSA-xrhx-7g5j-rcj5": [
              "CVE-2026-47674"
            ]
          },
          "cross_scanner_correlation": {
            "only_osv": [
              "GHSA-3v7f-55p6-f55p",
              "GHSA-52cp-r559-cp3m",
              "GHSA-c2c7-rcm5-vvqj",
              "GHSA-h67p-54hq-rp68",
              "GHSA-mh29-5h37-fv8m"
            ],
            "only_trivy": [],
            "intersection_ids": [
              "CVE-2025-69873",
              "CVE-2026-12590",
              "CVE-2026-2391",
              "CVE-2026-29045",
              "CVE-2026-29085",
              "CVE-2026-29086",
              "CVE-2026-29087",
              "CVE-2026-30827",
              "CVE-2026-39406",
              "CVE-2026-39407",
              "CVE-2026-39408",
              "CVE-2026-39409",
              "CVE-2026-39410",
              "CVE-2026-42338",
              "CVE-2026-44455",
              "CVE-2026-44456",
              "CVE-2026-44457",
              "CVE-2026-44458",
              "CVE-2026-44459",
              "CVE-2026-47673",
              "CVE-2026-47674",
              "CVE-2026-47675",
              "CVE-2026-47676",
              "CVE-2026-4923",
              "CVE-2026-4926",
              "CVE-2026-54286",
              "CVE-2026-54287",
              "CVE-2026-54288",
              "CVE-2026-54289",
              "CVE-2026-54290",
              "CVE-2026-56761",
              "CVE-2026-6321",
              "CVE-2026-6322",
              "CVE-2026-8723",
              "GHSA-26pp-8wgv-hjvm",
              "GHSA-gq3j-xvxp-8hrf",
              "GHSA-v8w9-8mx6-g223"
            ]
          }
        },
        "display_score": 0.0,
        "display_badge": "Unsafe"
      }
    ]
  },
  "report": {
    "report_id": "7fe436de-18d7-4e39-85d7-4c9721a7a469",
    "format": "json",
    "generated_at": "2026-07-22T21:23:12.260217+00:00",
    "scanner_filter": null,
    "signature": null
  }
}