{
  "executive_summary": {
    "badge": "Unsafe",
    "security_score": 44.04,
    "view": "composite",
    "scanner_badges": {
      "agentshield": "Verified",
      "cisco-skill-scanner": "Unsafe",
      "agent-audit-kit": "Verified",
      "bearer": "Verified",
      "nerlo-behavioral": "Verified",
      "nerlo-install-instruction": "Verified",
      "trivy": "Unsafe",
      "osv-scanner": "Unsafe"
    },
    "finding_counts": {
      "critical": 0,
      "high": 42,
      "medium": 36,
      "low": 11
    },
    "recommendation": "mcp-tasks is NOT recommended for integration: the scan surfaced 0 critical and 42 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/flesler/mcp-tasks",
    "commit_sha_scanned": null,
    "license": "MIT",
    "maintainer": "Ariel Flesler <aflesler@gmail.com>",
    "name": "mcp-tasks",
    "version": "1.6.1"
  },
  "per_scanner_detail": [
    {
      "scanner_name": "agentshield",
      "scanner_version": "1.4.0",
      "score": 100.0,
      "scanner_badge": "Verified",
      "findings": [
        {
          "tool_name": "agentshield",
          "severity": "informational",
          "category": "misconfiguration",
          "file_path": ".cursor/mcp.json",
          "line_number": null,
          "rule_identifier": "mcp-no-desc-mcp-tasks-local",
          "title": "MCP server \"mcp-tasks-local\" has no description",
          "description": "Add a description to make security auditing easier: what does this server do and why is it needed?",
          "remediation": null
        }
      ],
      "execution_duration_seconds": 8.523587104995386,
      "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": 32.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 40% of skill content could be analyzed. 18 of 31 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": "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/logger.ts",
          "line_number": 27,
          "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
          "title": "Node.js filesystem access that could read or write sensitive data",
          "description": "Pattern detected: fs.appendFileSync(",
          "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "medium",
          "category": "obfuscation",
          "file_path": "/repo/src/server.ts",
          "line_number": null,
          "rule_identifier": "FILE_MAGIC_MISMATCH",
          "title": "File extension does not match actual content type",
          "description": "File 'server.ts' extension (.ts) suggests one format but Magika detected a different text format: JavaScript source (javascript). This may indicate content obfuscation or a misnamed file.",
          "remediation": "Rename the file to match its actual content type, or remove it if it appears malicious."
        },
        {
          "tool_name": "cisco-skill-scanner",
          "severity": "high",
          "category": "data_exfiltration",
          "file_path": "/repo/tsup.config.ts",
          "line_number": 30,
          "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/tsup.config.ts",
          "line_number": 35,
          "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"
        }
      ],
      "execution_duration_seconds": 43.690299552996294,
      "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"
        ],
        "install_command": "pip install --require-hashes -r docker/scanner-base/cisco-skill-scanner/requirements.txt",
        "severity_counts": {
          "low": 1,
          "high": 4,
          "medium": 1,
          "critical": 0,
          "informational": 1
        }
      },
      "display_score": 32.5,
      "display_badge": "Unsafe"
    },
    {
      "scanner_name": "agent-audit-kit",
      "scanner_version": "0.3.26",
      "score": 96.0,
      "scanner_badge": "Verified",
      "findings": [
        {
          "tool_name": "agent-audit-kit",
          "severity": "low",
          "category": "supply-chain",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "AAK-SUPPLY-005",
          "title": "Dependency count exceeds threshold",
          "description": "More than 200 direct + transitive dependencies in lockfile. Each dependency is a trust decision.",
          "remediation": "Audit and remove unused dependencies. Consider lighter alternatives."
        },
        {
          "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."
        }
      ],
      "execution_duration_seconds": 14.212415404006606,
      "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": 28,
        "install_command": "pip install --require-hashes -r docker/scanner-base/agent-audit-kit/requirements.txt",
        "rules_evaluated": 211,
        "severity_counts": {
          "low": 2,
          "high": 0,
          "medium": 0,
          "critical": 0,
          "informational": 0
        }
      },
      "display_score": 96.0,
      "display_badge": "Verified"
    },
    {
      "scanner_name": "bearer",
      "scanner_version": "2.0.2",
      "score": 100.0,
      "scanner_badge": "Verified",
      "findings": [],
      "execution_duration_seconds": 12.593953274001251,
      "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": 49.81016050699691,
      "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": 18,
        "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": 49.093034876001184,
      "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": 1,
        "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": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2025-66414",
          "title": "Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default",
          "description": "MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. Prior to 1.24.0, The Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default for HTTP-based servers. When an HTTP-based MCP server is run on localhost without authentication with StreamableHTTPServerTransport or SSEServerTransport and has not enabled enableDnsRebindingProtection, a malicious website could exploit DNS rebinding to bypass same-origin policy rest",
          "remediation": "Upgrade @modelcontextprotocol/sdk from 1.15.1 to 1.24.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-0621",
          "title": "Anthropic's MCP TypeScript SDK has a ReDoS vulnerability",
          "description": "Anthropic's MCP TypeScript SDK versions up to and including 1.25.1 contain a regular expression denial of service (ReDoS) vulnerability in the UriTemplate class when processing RFC 6570 exploded array patterns. The dynamically generated regular expression used during URI matching contains nested quantifiers that can trigger catastrophic backtracking on specially crafted inputs, resulting in excessive CPU consumption. An attacker can exploit this by supplying a malicious URI that causes the Node.",
          "remediation": "Upgrade @modelcontextprotocol/sdk from 1.15.1 to 1.25.2 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-25536",
          "title": "@modelcontextprotocol/sdk: @modelcontextprotocol/sdk cross-client data leak",
          "description": "MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. From version 1.10.0 to 1.25.3, cross-client response data leak when a single McpServer/Server and transport instance is reused across multiple client connections, most commonly in stateless StreamableHTTPServerTransport deployments. This issue has been patched in version 1.26.0.",
          "remediation": "Upgrade @modelcontextprotocol/sdk from 1.15.1 to 1.26.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "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 6.12.6 to 8.18.0, 6.14.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2025-13466",
          "title": "body-parser: body-parser denial of service",
          "description": "body-parser 2.2.0 is vulnerable to denial of service due to inefficient handling of URL-encoded bodies with very large numbers of parameters. An attacker can send payloads containing thousands of parameters within the default 100KB request size limit, causing elevated CPU and memory usage. This can lead to service slowdown or partial outages under sustained malicious traffic.\nThis issue is addressed in version 2.2.1.",
          "remediation": "Upgrade body-parser from 2.2.0 to 2.2.1 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "low",
          "category": "npm",
          "file_path": "package-lock.json",
          "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.0 to 1.20.6, 2.3.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-31808",
          "title": "file-type: file-type: Denial of Service due to infinite loop in ASF file parsing",
          "description": "file-type detects the file type of a file, stream, or data. Prior to 21.3.1, a denial of service vulnerability exists in the ASF (WMV/WMA) file type detection parser. When parsing a crafted input where an ASF sub-header has a size field of zero, the parser enters an infinite loop. The payload value becomes negative (-24), causing tokenizer.ignore(payload) to move the read position backwards, so the same sub-header is read repeatedly forever. Any application that uses file-type to detect the type",
          "remediation": "Upgrade file-type from 21.0.0 to 21.3.1 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-32630",
          "title": "file-type: file-type: Denial of Service via excessive memory growth from crafted ZIP files",
          "description": "file-type detects the file type of a file, stream, or data. From 20.0.0 to 21.3.1, a crafted ZIP file can trigger excessive memory growth during type detection in file-type when using fileTypeFromBuffer(), fileTypeFromBlob(), or fileTypeFromFile(). The ZIP inflate output limit is enforced for stream-based detection, but not for known-size inputs. As a result, a small compressed ZIP can cause file-type to inflate and process a much larger payload while probing ZIP-based formats such as OOXML. Thi",
          "remediation": "Upgrade file-type from 21.0.0 to 21.3.2 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-4800",
          "title": "lodash: lodash: Arbitrary code execution via untrusted input in template imports",
          "description": "Impact:\n\nThe fix for CVE-2021-23337 (https://github.com/advisories/GHSA-35jh-r3h4-6jhm) added validation for the variable option in _.template but did not apply the same validation to options.imports key names. Both paths flow into the same Function() constructor sink.\n\nWhen an application passes untrusted input as options.imports key names, an attacker can inject default-parameter expressions that execute arbitrary code at template compilation time.\n\nAdditionally, _.template uses assignInWith t",
          "remediation": "Upgrade lodash from 4.17.21 to 4.18.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2025-13465",
          "title": "lodash: prototype pollution in _.unset and _.omit functions",
          "description": "Lodash versions 4.0.0 through 4.17.22 are vulnerable to prototype pollution in the _.unset\u00a0and _.omit\u00a0functions. An attacker can pass crafted paths which cause Lodash to delete methods from global prototypes.\n\nThe issue permits deletion of properties but does not allow overwriting their original behavior.\n\nThis issue is patched on 4.17.23",
          "remediation": "Upgrade lodash from 4.17.21 to 4.17.23 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-2950",
          "title": "lodash: Lodash: Prototype pollution allows deletion of built-in prototype properties via array path bypass",
          "description": "Impact:\n\nLodash versions 4.17.23 and earlier are vulnerable to prototype pollution in the _.unset and _.omit functions. The fix for (CVE-2025-13465: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg) only guards against string key members, so an attacker can bypass the check by passing array-wrapped path segments. This allows deletion of properties from built-in prototypes such as Object.prototype, Number.prototype, and String.prototype.\n\nThe issue permits deletion of prot",
          "remediation": "Upgrade lodash from 4.17.21 to 4.18.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "npm",
          "file_path": "package-lock.json",
          "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": "npm",
          "file_path": "package-lock.json",
          "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": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2025-15284",
          "title": "qs: qs: Denial of Service via improper input validation in array parsing",
          "description": "Improper Input Validation vulnerability in qs (parse modules) allows HTTP DoS.This issue affects qs: < 6.14.1.\n\n\nSummary\n\nThe arrayLimit\u00a0option in qs did not enforce limits for bracket notation (a[]=1&a[]=2), only for indexed notation (a[0]=1). This is a consistency bug; arrayLimit\u00a0should apply uniformly across all array notations.\n\nNote:\u00a0The default parameterLimit\u00a0of 1000 effectively mitigates the DoS scenario originally described. With default options, bracket notation cannot produce arrays la",
          "remediation": "Upgrade qs from 6.14.0 to 6.14.1 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "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.0 to 6.15.2 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "low",
          "category": "npm",
          "file_path": "package-lock.json",
          "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.0 to 6.14.2 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-12151",
          "title": "undici: undici: Denial of Service due to unbounded memory growth via WebSocket frames",
          "description": "Impact:\nThe undici WebSocket client enforces maxPayloadSize on the cumulative byte count of fragments in a message but does not enforce a limit on the number of fragments. A malicious WebSocket server can stream many small or empty continuation frames that each pass per-frame and cumulative-size validation, collectively causing unbounded memory growth in the client process. The result is memory exhaustion and a denial of service.\n\nAffected applications are those using the undici WebSocket client",
          "remediation": "Upgrade undici from 7.11.0 to 6.27.0, 7.28.0, 8.5.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-1526",
          "title": "undici: undici: Denial of Service via unbounded memory consumption during WebSocket permessage-deflate decompression",
          "description": "The undici WebSocket client is vulnerable to a denial-of-service attack via unbounded memory consumption during permessage-deflate decompression. When a WebSocket connection negotiates the permessage-deflate extension, the client decompresses incoming compressed frames without enforcing any limit on the decompressed data size. A malicious WebSocket server can send a small compressed frame (a \"decompression bomb\") that expands to an extremely large size in memory, causing the Node.js process to e",
          "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-1528",
          "title": "undici: undici: Denial of Service via crafted WebSocket frame with large length",
          "description": "ImpactA server can reply with a WebSocket frame using the 64-bit length form and an extremely large length. undici's ByteParser overflows internal math, ends up in an invalid state, and throws a fatal TypeError that terminates the process.\n\nPatches\n\nPatched in the undici version v7.24.0 and v6.24.0. Users should upgrade to this version or later.",
          "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "high",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-2229",
          "title": "undici: Undici: Denial of Service via invalid WebSocket permessage-deflate extension parameter",
          "description": "ImpactThe undici WebSocket client is vulnerable to a denial-of-service attack due to improper validation of the\u00a0server_max_window_bits\u00a0parameter in the permessage-deflate extension. When a WebSocket client connects to a server, it automatically advertises support for permessage-deflate compression. A malicious server can respond with an out-of-range\u00a0server_max_window_bits\u00a0value (outside zlib's valid range of 8-15). When the server subsequently sends a compressed frame, the client attempts to cre",
          "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-1525",
          "title": "undici: Undici: HTTP Request Smuggling and Denial of Service due to duplicate Content-Length headers",
          "description": "Undici allows duplicate HTTP\u00a0Content-Length\u00a0headers when they are provided in an array with case-variant names (e.g.,\u00a0Content-Length\u00a0and\u00a0content-length). This produces malformed HTTP/1.1 requests with multiple conflicting\u00a0Content-Length\u00a0values on the wire.\n\nWho is impacted:\n\n  *  Applications using\u00a0undici.request(),\u00a0undici.Client, or similar low-level APIs with headers passed as flat arrays\n  *  Applications that accept user-controlled header names without case-normalization\n\n\nPotential conseque",
          "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-1527",
          "title": "undici: Undici: HTTP header injection and request smuggling vulnerability",
          "description": "ImpactWhen an application passes user-controlled input to the\u00a0upgrade\u00a0option of\u00a0client.request(), an attacker can inject CRLF sequences (\\r\\n) to:\n\n  *  Inject arbitrary HTTP headers\n  *  Terminate the HTTP request prematurely and smuggle raw data to non-HTTP services (Redis, Memcached, Elasticsearch)\nThe vulnerability exists because undici writes the\u00a0upgrade\u00a0value directly to the socket without validating for invalid header characters:\n\n// lib/dispatcher/client-h1.js:1121\nif (upgrade) {\n  heade",
          "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-22036",
          "title": "undici: Undici: Denial of Service via excessive decompression steps",
          "description": "Undici is an HTTP/1.1 client for Node.js. Prior to 7.18.0 and 6.23.0, the number of links in the decompression chain is unbounded and the default maxHeaderSize allows a malicious server to insert thousands compression steps leading to high CPU usage and excessive memory allocation. This vulnerability is fixed in 7.18.0 and 6.23.0.",
          "remediation": "Upgrade undici from 7.11.0 to 7.18.2, 6.23.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-9678",
          "title": "undici: Undici: Information disclosure due to improper cache-control header parsing",
          "description": "Impact:\nUndici's cache interceptor incorrectly classifies some responses as cacheable when the upstream Cache-Control header uses whitespace-padded qualified private or no-cache field names such as private=\" authorization\" or no-cache=\"\\tauthorization\". The parser preserves the surrounding whitespace, so later comparisons against the literal authorization field name fail and the response is stored.\n\nIn shared-cache mode, this allows a response containing one user's authenticated data to be serve",
          "remediation": "Upgrade undici from 7.11.0 to 7.28.0, 8.5.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-9679",
          "title": "undici: undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
          "description": "Impact:\nundici's cookie parser in parseSetCookie percent-decodes cookie values via qsUnescape, turning encoded sequences like %0D%0A, %00, %3B, and %3D into their literal byte equivalents. RFC 6265 \u00a75.4 does not specify any decoding and browsers do not decode either.\n\nApplications that parse a Set-Cookie header and then forward the parsed value into a response header (proxies, middleware, SSR frameworks) become vulnerable to HTTP response header injection: an attacker-controlled upstream can inj",
          "remediation": "Upgrade undici from 7.11.0 to 6.27.0, 7.28.0, 8.5.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "low",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-11525",
          "title": "undici: undici: Weakening of cookie SameSite policy due to incorrect parsing of Set-Cookie header",
          "description": "Impact:\nWhen undici parses a Set-Cookie header, it accepts any SameSite attribute value that contains Strict, Lax, or None as a substring, rather than the case-insensitive exact match specified by RFC 6265. Non-spec values are silently mapped to one of the three standard tokens. For example, SameSite=NoneOfYourBusiness is parsed as None (the most permissive setting), and SameSite=StrictLax is parsed as Lax (a downgrade from Strict).\n\nAffected applications are those that consume Set-Cookie header",
          "remediation": "Upgrade undici from 7.11.0 to 6.27.0, 7.28.0, 8.5.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "low",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-6733",
          "title": "undici: Undici: Response queue poisoning on reused keep-alive sockets can lead to incorrect response delivery.",
          "description": "Impact:\nUndici's HTTP/1.1 client is vulnerable to response queue poisoning on reused keep-alive sockets. An attacker-controlled upstream server can inject an unsolicited HTTP/1.1 response onto an idle socket after a request completes. When the client dispatches the next request on that socket, it associates the injected response with the new request, causing responses to be delivered to the wrong requests.\n\nThis requires an attacker-controlled or compromised upstream HTTP/1.1 server and keep-ali",
          "remediation": "Upgrade undici from 7.11.0 to 6.27.0, 7.28.0, 8.5.0 or later"
        },
        {
          "tool_name": "trivy",
          "severity": "medium",
          "category": "npm",
          "file_path": "package-lock.json",
          "line_number": null,
          "rule_identifier": "CVE-2026-33532",
          "title": "yaml: yaml: Denial of Service via deeply nested YAML document parsing",
          "description": "`yaml` is a YAML parser and serialiser for JavaScript. Parsing a YAML document with a version of `yaml` on the 1.x branch prior to 1.10.3 or on the 2.x branch prior to 2.8.3 may throw a RangeError due to a stack overflow. The node resolution/composition phase uses recursive function calls without a depth bound. An attacker who can supply YAML for parsing can trigger a `RangeError: Maximum call stack size exceeded` with a small payload (~2\u201310 KB). The `RangeError` is not a `YAMLParseError`, so ap",
          "remediation": "Upgrade yaml from 2.8.0 to 2.8.3, 1.10.3 or later"
        }
      ],
      "execution_duration_seconds": 1.6182998800068162,
      "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": 9,
          "medium": 15,
          "critical": 0,
          "informational": 0
        },
        "manifests_scanned": [
          "package-lock.json"
        ]
      },
      "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": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-7h2j-956f-4vf2",
          "title": "GHSA-7h2j-956f-4vf2 \u2014 npm @isaacs/brace-expansion@5.0.0",
          "description": "aliases: CVE-2026-25547, GHSA-7h2j-956f-4vf2 | CVSS: 8.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-345p-7cg4-v4c7",
          "title": "GHSA-345p-7cg4-v4c7 \u2014 npm @modelcontextprotocol/sdk@1.15.1",
          "description": "aliases: CVE-2026-25536, GHSA-345p-7cg4-v4c7 | CVSS: 7.1",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-8r9q-7v3j-jr4g",
          "title": "GHSA-8r9q-7v3j-jr4g \u2014 npm @modelcontextprotocol/sdk@1.15.1",
          "description": "aliases: CVE-2026-0621, GHSA-8r9q-7v3j-jr4g | CVSS: 8.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-w48q-cv73-mx4w",
          "title": "GHSA-w48q-cv73-mx4w \u2014 npm @modelcontextprotocol/sdk@1.15.1",
          "description": "aliases: CVE-2025-66414, GHSA-w48q-cv73-mx4w | CVSS: 7.6",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-2g4f-4pwh-qvx6",
          "title": "GHSA-2g4f-4pwh-qvx6 \u2014 npm ajv@6.12.6",
          "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/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-v422-hmwv-36x6",
          "title": "GHSA-v422-hmwv-36x6 \u2014 npm body-parser@2.2.0",
          "description": "aliases: CVE-2026-12590, GHSA-v422-hmwv-36x6 | CVSS: 3.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-wqch-xfxh-vrr4",
          "title": "GHSA-wqch-xfxh-vrr4 \u2014 npm body-parser@2.2.0",
          "description": "aliases: CVE-2025-13466, GHSA-wqch-xfxh-vrr4 | CVSS: 5.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-3jxr-9vmj-r5cp",
          "title": "GHSA-3jxr-9vmj-r5cp \u2014 npm brace-expansion@1.1.12",
          "description": "aliases: CVE-2026-13149, GHSA-3jxr-9vmj-r5cp | CVSS: 7.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-f886-m6hf-6m8v",
          "title": "GHSA-f886-m6hf-6m8v \u2014 npm brace-expansion@1.1.12",
          "description": "aliases: CVE-2026-33750, GHSA-f886-m6hf-6m8v | CVSS: 6.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-3jxr-9vmj-r5cp",
          "title": "GHSA-3jxr-9vmj-r5cp \u2014 npm brace-expansion@2.0.2",
          "description": "aliases: CVE-2026-13149, GHSA-3jxr-9vmj-r5cp | CVSS: 7.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-f886-m6hf-6m8v",
          "title": "GHSA-f886-m6hf-6m8v \u2014 npm brace-expansion@2.0.2",
          "description": "aliases: CVE-2026-33750, GHSA-f886-m6hf-6m8v | CVSS: 6.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-5v7r-6r5c-r473",
          "title": "GHSA-5v7r-6r5c-r473 \u2014 npm file-type@21.0.0",
          "description": "aliases: CVE-2026-31808, GHSA-5v7r-6r5c-r473 | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-j47w-4g3g-c36v",
          "title": "GHSA-j47w-4g3g-c36v \u2014 npm file-type@21.0.0",
          "description": "aliases: CVE-2026-32630, GHSA-j47w-4g3g-c36v | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-25h7-pfq9-p65f",
          "title": "GHSA-25h7-pfq9-p65f \u2014 npm flatted@3.3.3",
          "description": "aliases: CVE-2026-32141, GHSA-25h7-pfq9-p65f | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-rf6f-7fwh-wjgh",
          "title": "GHSA-rf6f-7fwh-wjgh \u2014 npm flatted@3.3.3",
          "description": "aliases: CVE-2026-33228, GHSA-rf6f-7fwh-wjgh | CVSS: 8.9",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-5j98-mcp5-4vw2",
          "title": "GHSA-5j98-mcp5-4vw2 \u2014 npm glob@10.4.5",
          "description": "aliases: CVE-2025-64756, GHSA-5j98-mcp5-4vw2 | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-5j98-mcp5-4vw2",
          "title": "GHSA-5j98-mcp5-4vw2 \u2014 npm glob@11.0.3",
          "description": "aliases: CVE-2025-64756, GHSA-5j98-mcp5-4vw2 | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-52cp-r559-cp3m",
          "title": "GHSA-52cp-r559-cp3m \u2014 npm js-yaml@4.1.0",
          "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/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-h67p-54hq-rp68",
          "title": "GHSA-h67p-54hq-rp68 \u2014 npm js-yaml@4.1.0",
          "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/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-mh29-5h37-fv8m",
          "title": "GHSA-mh29-5h37-fv8m \u2014 npm js-yaml@4.1.0",
          "description": "aliases: CVE-2025-64718, GHSA-mh29-5h37-fv8m | CVSS: 5.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-f23m-r3pf-42rh",
          "title": "GHSA-f23m-r3pf-42rh \u2014 npm lodash@4.17.21",
          "description": "aliases: CVE-2025-13465, CVE-2026-2950, GHSA-f23m-r3pf-42rh, GHSA-xxjr-mmjv-4gpg | CVSS: 6.9",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-r5fr-rjxr-66jc",
          "title": "GHSA-r5fr-rjxr-66jc \u2014 npm lodash@4.17.21",
          "description": "aliases: CVE-2021-23337, CVE-2026-4800, GHSA-35jh-r3h4-6jhm, GHSA-r5fr-rjxr-66jc | CVSS: 8.1",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-23c5-xmqv-rm74",
          "title": "GHSA-23c5-xmqv-rm74 \u2014 npm minimatch@10.0.3",
          "description": "aliases: CVE-2026-27904, GHSA-23c5-xmqv-rm74 | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-3ppc-4f35-3m26",
          "title": "GHSA-3ppc-4f35-3m26 \u2014 npm minimatch@10.0.3",
          "description": "aliases: CVE-2026-26996, GHSA-3ppc-4f35-3m26 | CVSS: 8.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-7r86-cg39-jmmj",
          "title": "GHSA-7r86-cg39-jmmj \u2014 npm minimatch@10.0.3",
          "description": "aliases: CVE-2026-27903, GHSA-7r86-cg39-jmmj | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-23c5-xmqv-rm74",
          "title": "GHSA-23c5-xmqv-rm74 \u2014 npm minimatch@3.1.2",
          "description": "aliases: CVE-2026-27904, GHSA-23c5-xmqv-rm74 | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-3ppc-4f35-3m26",
          "title": "GHSA-3ppc-4f35-3m26 \u2014 npm minimatch@3.1.2",
          "description": "aliases: CVE-2026-26996, GHSA-3ppc-4f35-3m26 | CVSS: 8.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-7r86-cg39-jmmj",
          "title": "GHSA-7r86-cg39-jmmj \u2014 npm minimatch@3.1.2",
          "description": "aliases: CVE-2026-27903, GHSA-7r86-cg39-jmmj | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-23c5-xmqv-rm74",
          "title": "GHSA-23c5-xmqv-rm74 \u2014 npm minimatch@9.0.5",
          "description": "aliases: CVE-2026-27904, GHSA-23c5-xmqv-rm74 | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-3ppc-4f35-3m26",
          "title": "GHSA-3ppc-4f35-3m26 \u2014 npm minimatch@9.0.5",
          "description": "aliases: CVE-2026-26996, GHSA-3ppc-4f35-3m26 | CVSS: 8.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-7r86-cg39-jmmj",
          "title": "GHSA-7r86-cg39-jmmj \u2014 npm minimatch@9.0.5",
          "description": "aliases: CVE-2026-27903, GHSA-7r86-cg39-jmmj | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "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/package-lock.json",
          "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/package-lock.json",
          "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/package-lock.json",
          "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/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-3v7f-55p6-f55p",
          "title": "GHSA-3v7f-55p6-f55p \u2014 npm picomatch@4.0.3",
          "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/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-c2c7-rcm5-vvqj",
          "title": "GHSA-c2c7-rcm5-vvqj \u2014 npm picomatch@4.0.3",
          "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/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-6rw7-vpxm-498p",
          "title": "GHSA-6rw7-vpxm-498p \u2014 npm qs@6.14.0",
          "description": "aliases: CVE-2025-15284, GHSA-6rw7-vpxm-498p | CVSS: 6.3",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-q8mj-m7cp-5q26",
          "title": "GHSA-q8mj-m7cp-5q26 \u2014 npm qs@6.14.0",
          "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/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-w7fw-mjwx-w883",
          "title": "GHSA-w7fw-mjwx-w883 \u2014 npm qs@6.14.0",
          "description": "aliases: CVE-2026-2391, GHSA-w7fw-mjwx-w883 | CVSS: 3.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-mw96-cpmx-2vgc",
          "title": "GHSA-mw96-cpmx-2vgc \u2014 npm rollup@4.46.2",
          "description": "aliases: CVE-2026-27606, GHSA-mw96-cpmx-2vgc | CVSS: 8.8",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-2mjp-6q6p-2qxm",
          "title": "GHSA-2mjp-6q6p-2qxm \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-1525, GHSA-2mjp-6q6p-2qxm | CVSS: 6.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "low",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-35p6-xmwp-9g52",
          "title": "GHSA-35p6-xmwp-9g52 \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-6733, GHSA-35p6-xmwp-9g52 | CVSS: 3.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-4992-7rv2-5pvq",
          "title": "GHSA-4992-7rv2-5pvq \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-1527, GHSA-4992-7rv2-5pvq | CVSS: 4.6",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-f269-vfmq-vjvj",
          "title": "GHSA-f269-vfmq-vjvj \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-1528, GHSA-f269-vfmq-vjvj | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "low",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-g8m3-5g58-fq7m",
          "title": "GHSA-g8m3-5g58-fq7m \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-11525, GHSA-g8m3-5g58-fq7m | CVSS: 3.7",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-g9mf-h72j-4rw9",
          "title": "GHSA-g9mf-h72j-4rw9 \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-22036, GHSA-g9mf-h72j-4rw9 | CVSS: 5.9",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-p88m-4jfj-68fv",
          "title": "GHSA-p88m-4jfj-68fv \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-9679, GHSA-p88m-4jfj-68fv | CVSS: 5.9",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-pr7r-676h-xcf6",
          "title": "GHSA-pr7r-676h-xcf6 \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-9678, GHSA-pr7r-676h-xcf6 | CVSS: 5.9",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-v9p9-hfj2-hcw8",
          "title": "GHSA-v9p9-hfj2-hcw8 \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-2229, GHSA-v9p9-hfj2-hcw8 | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-vrm6-8vpv-qv8q",
          "title": "GHSA-vrm6-8vpv-qv8q \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-1526, GHSA-vrm6-8vpv-qv8q | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "high",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-vxpw-j846-p89q",
          "title": "GHSA-vxpw-j846-p89q \u2014 npm undici@7.11.0",
          "description": "aliases: CVE-2026-12151, GHSA-vxpw-j846-p89q | CVSS: 7.5",
          "remediation": null
        },
        {
          "tool_name": "osv-scanner",
          "severity": "medium",
          "category": "npm",
          "file_path": "/repo/package-lock.json",
          "line_number": null,
          "rule_identifier": "GHSA-48c2-rrv3-qjmp",
          "title": "GHSA-48c2-rrv3-qjmp \u2014 npm yaml@2.8.0",
          "description": "aliases: CVE-2026-33532, GHSA-48c2-rrv3-qjmp | CVSS: 4.3",
          "remediation": null
        }
      ],
      "execution_duration_seconds": 33.74122707100469,
      "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": 29,
          "medium": 20,
          "critical": 0,
          "informational": 0
        },
        "manifests_scanned": [
          "/repo/package-lock.json"
        ],
        "finding_id_aliases": {
          "GHSA-23c5-xmqv-rm74": [
            "CVE-2026-27904",
            "CVE-2026-27904",
            "CVE-2026-27904"
          ],
          "GHSA-25h7-pfq9-p65f": [
            "CVE-2026-32141"
          ],
          "GHSA-27v5-c462-wpq7": [
            "CVE-2026-4923"
          ],
          "GHSA-2g4f-4pwh-qvx6": [
            "CVE-2025-69873"
          ],
          "GHSA-2mjp-6q6p-2qxm": [
            "CVE-2026-1525"
          ],
          "GHSA-345p-7cg4-v4c7": [
            "CVE-2026-25536"
          ],
          "GHSA-35p6-xmwp-9g52": [
            "CVE-2026-6733"
          ],
          "GHSA-3jxr-9vmj-r5cp": [
            "CVE-2026-13149",
            "CVE-2026-13149"
          ],
          "GHSA-3ppc-4f35-3m26": [
            "CVE-2026-26996",
            "CVE-2026-26996",
            "CVE-2026-26996"
          ],
          "GHSA-3v7f-55p6-f55p": [
            "CVE-2026-33672",
            "CVE-2026-33672"
          ],
          "GHSA-48c2-rrv3-qjmp": [
            "CVE-2026-33532"
          ],
          "GHSA-4992-7rv2-5pvq": [
            "CVE-2026-1527"
          ],
          "GHSA-52cp-r559-cp3m": [
            "CVE-2026-59869"
          ],
          "GHSA-5j98-mcp5-4vw2": [
            "CVE-2025-64756",
            "CVE-2025-64756"
          ],
          "GHSA-5v7r-6r5c-r473": [
            "CVE-2026-31808"
          ],
          "GHSA-6rw7-vpxm-498p": [
            "CVE-2025-15284"
          ],
          "GHSA-7h2j-956f-4vf2": [
            "CVE-2026-25547"
          ],
          "GHSA-7r86-cg39-jmmj": [
            "CVE-2026-27903",
            "CVE-2026-27903",
            "CVE-2026-27903"
          ],
          "GHSA-8r9q-7v3j-jr4g": [
            "CVE-2026-0621"
          ],
          "GHSA-c2c7-rcm5-vvqj": [
            "CVE-2026-33671",
            "CVE-2026-33671"
          ],
          "GHSA-f23m-r3pf-42rh": [
            "CVE-2025-13465",
            "CVE-2026-2950",
            "GHSA-xxjr-mmjv-4gpg"
          ],
          "GHSA-f269-vfmq-vjvj": [
            "CVE-2026-1528"
          ],
          "GHSA-f886-m6hf-6m8v": [
            "CVE-2026-33750",
            "CVE-2026-33750"
          ],
          "GHSA-g8m3-5g58-fq7m": [
            "CVE-2026-11525"
          ],
          "GHSA-g9mf-h72j-4rw9": [
            "CVE-2026-22036"
          ],
          "GHSA-h67p-54hq-rp68": [
            "CVE-2026-53550"
          ],
          "GHSA-j3q9-mxjg-w52f": [
            "CVE-2026-4926"
          ],
          "GHSA-j47w-4g3g-c36v": [
            "CVE-2026-32630"
          ],
          "GHSA-mh29-5h37-fv8m": [
            "CVE-2025-64718"
          ],
          "GHSA-mw96-cpmx-2vgc": [
            "CVE-2026-27606"
          ],
          "GHSA-p88m-4jfj-68fv": [
            "CVE-2026-9679"
          ],
          "GHSA-pr7r-676h-xcf6": [
            "CVE-2026-9678"
          ],
          "GHSA-q8mj-m7cp-5q26": [
            "CVE-2026-8723"
          ],
          "GHSA-r5fr-rjxr-66jc": [
            "CVE-2021-23337",
            "CVE-2026-4800",
            "GHSA-35jh-r3h4-6jhm"
          ],
          "GHSA-rf6f-7fwh-wjgh": [
            "CVE-2026-33228"
          ],
          "GHSA-v422-hmwv-36x6": [
            "CVE-2026-12590"
          ],
          "GHSA-v9p9-hfj2-hcw8": [
            "CVE-2026-2229"
          ],
          "GHSA-vrm6-8vpv-qv8q": [
            "CVE-2026-1526"
          ],
          "GHSA-vxpw-j846-p89q": [
            "CVE-2026-12151"
          ],
          "GHSA-w48q-cv73-mx4w": [
            "CVE-2025-66414"
          ],
          "GHSA-w7fw-mjwx-w883": [
            "CVE-2026-2391"
          ],
          "GHSA-wqch-xfxh-vrr4": [
            "CVE-2025-13466"
          ]
        },
        "cross_scanner_correlation": {
          "only_osv": [
            "GHSA-23c5-xmqv-rm74",
            "GHSA-25h7-pfq9-p65f",
            "GHSA-3jxr-9vmj-r5cp",
            "GHSA-3ppc-4f35-3m26",
            "GHSA-3v7f-55p6-f55p",
            "GHSA-52cp-r559-cp3m",
            "GHSA-5j98-mcp5-4vw2",
            "GHSA-7h2j-956f-4vf2",
            "GHSA-7r86-cg39-jmmj",
            "GHSA-c2c7-rcm5-vvqj",
            "GHSA-f886-m6hf-6m8v",
            "GHSA-h67p-54hq-rp68",
            "GHSA-mh29-5h37-fv8m",
            "GHSA-mw96-cpmx-2vgc",
            "GHSA-rf6f-7fwh-wjgh"
          ],
          "only_trivy": [],
          "intersection_ids": [
            "CVE-2025-13465",
            "CVE-2025-13466",
            "CVE-2025-15284",
            "CVE-2025-66414",
            "CVE-2025-69873",
            "CVE-2026-0621",
            "CVE-2026-11525",
            "CVE-2026-12151",
            "CVE-2026-12590",
            "CVE-2026-1525",
            "CVE-2026-1526",
            "CVE-2026-1527",
            "CVE-2026-1528",
            "CVE-2026-22036",
            "CVE-2026-2229",
            "CVE-2026-2391",
            "CVE-2026-25536",
            "CVE-2026-2950",
            "CVE-2026-31808",
            "CVE-2026-32630",
            "CVE-2026-33532",
            "CVE-2026-4800",
            "CVE-2026-4923",
            "CVE-2026-4926",
            "CVE-2026-6733",
            "CVE-2026-8723",
            "CVE-2026-9678",
            "CVE-2026-9679"
          ]
        }
      },
      "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": "de0e7606-4ce4-4107-8a46-636fffed6923",
    "scan_completed_at": "2026-07-21T02:56:29.953368+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:aa25580a8213f0c63144c63ae892cdc349d9220471fff005661ef583a93008e8",
    "ai_decision_log_ids": [
      "7e44733b-59f9-49cc-894f-7009abecf06b"
    ],
    "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": [
          {
            "tool_name": "agentshield",
            "severity": "informational",
            "category": "misconfiguration",
            "file_path": ".cursor/mcp.json",
            "line_number": null,
            "rule_identifier": "mcp-no-desc-mcp-tasks-local",
            "title": "MCP server \"mcp-tasks-local\" has no description",
            "description": "Add a description to make security auditing easier: what does this server do and why is it needed?",
            "remediation": null
          }
        ],
        "execution_duration_seconds": 8.523587104995386,
        "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": 32.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 40% of skill content could be analyzed. 18 of 31 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": "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/logger.ts",
            "line_number": 27,
            "rule_identifier": "DATA_EXFIL_JS_FS_ACCESS",
            "title": "Node.js filesystem access that could read or write sensitive data",
            "description": "Pattern detected: fs.appendFileSync(",
            "remediation": "Review filesystem operations. Ensure they don't access sensitive system files or credential stores"
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "medium",
            "category": "obfuscation",
            "file_path": "/repo/src/server.ts",
            "line_number": null,
            "rule_identifier": "FILE_MAGIC_MISMATCH",
            "title": "File extension does not match actual content type",
            "description": "File 'server.ts' extension (.ts) suggests one format but Magika detected a different text format: JavaScript source (javascript). This may indicate content obfuscation or a misnamed file.",
            "remediation": "Rename the file to match its actual content type, or remove it if it appears malicious."
          },
          {
            "tool_name": "cisco-skill-scanner",
            "severity": "high",
            "category": "data_exfiltration",
            "file_path": "/repo/tsup.config.ts",
            "line_number": 30,
            "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/tsup.config.ts",
            "line_number": 35,
            "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"
          }
        ],
        "execution_duration_seconds": 43.690299552996294,
        "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"
          ],
          "install_command": "pip install --require-hashes -r docker/scanner-base/cisco-skill-scanner/requirements.txt",
          "severity_counts": {
            "low": 1,
            "high": 4,
            "medium": 1,
            "critical": 0,
            "informational": 1
          }
        },
        "display_score": 32.5,
        "display_badge": "Unsafe"
      },
      {
        "scanner_name": "agent-audit-kit",
        "scanner_version": "0.3.26",
        "score": 96.0,
        "scanner_badge": "Verified",
        "findings": [
          {
            "tool_name": "agent-audit-kit",
            "severity": "low",
            "category": "supply-chain",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "AAK-SUPPLY-005",
            "title": "Dependency count exceeds threshold",
            "description": "More than 200 direct + transitive dependencies in lockfile. Each dependency is a trust decision.",
            "remediation": "Audit and remove unused dependencies. Consider lighter alternatives."
          },
          {
            "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."
          }
        ],
        "execution_duration_seconds": 14.212415404006606,
        "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": 28,
          "install_command": "pip install --require-hashes -r docker/scanner-base/agent-audit-kit/requirements.txt",
          "rules_evaluated": 211,
          "severity_counts": {
            "low": 2,
            "high": 0,
            "medium": 0,
            "critical": 0,
            "informational": 0
          }
        },
        "display_score": 96.0,
        "display_badge": "Verified"
      },
      {
        "scanner_name": "bearer",
        "scanner_version": "2.0.2",
        "score": 100.0,
        "scanner_badge": "Verified",
        "findings": [],
        "execution_duration_seconds": 12.593953274001251,
        "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": 49.81016050699691,
        "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": 18,
          "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": 49.093034876001184,
        "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": 1,
          "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": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2025-66414",
            "title": "Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default",
            "description": "MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. Prior to 1.24.0, The Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default for HTTP-based servers. When an HTTP-based MCP server is run on localhost without authentication with StreamableHTTPServerTransport or SSEServerTransport and has not enabled enableDnsRebindingProtection, a malicious website could exploit DNS rebinding to bypass same-origin policy rest",
            "remediation": "Upgrade @modelcontextprotocol/sdk from 1.15.1 to 1.24.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-0621",
            "title": "Anthropic's MCP TypeScript SDK has a ReDoS vulnerability",
            "description": "Anthropic's MCP TypeScript SDK versions up to and including 1.25.1 contain a regular expression denial of service (ReDoS) vulnerability in the UriTemplate class when processing RFC 6570 exploded array patterns. The dynamically generated regular expression used during URI matching contains nested quantifiers that can trigger catastrophic backtracking on specially crafted inputs, resulting in excessive CPU consumption. An attacker can exploit this by supplying a malicious URI that causes the Node.",
            "remediation": "Upgrade @modelcontextprotocol/sdk from 1.15.1 to 1.25.2 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-25536",
            "title": "@modelcontextprotocol/sdk: @modelcontextprotocol/sdk cross-client data leak",
            "description": "MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. From version 1.10.0 to 1.25.3, cross-client response data leak when a single McpServer/Server and transport instance is reused across multiple client connections, most commonly in stateless StreamableHTTPServerTransport deployments. This issue has been patched in version 1.26.0.",
            "remediation": "Upgrade @modelcontextprotocol/sdk from 1.15.1 to 1.26.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "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 6.12.6 to 8.18.0, 6.14.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2025-13466",
            "title": "body-parser: body-parser denial of service",
            "description": "body-parser 2.2.0 is vulnerable to denial of service due to inefficient handling of URL-encoded bodies with very large numbers of parameters. An attacker can send payloads containing thousands of parameters within the default 100KB request size limit, causing elevated CPU and memory usage. This can lead to service slowdown or partial outages under sustained malicious traffic.\nThis issue is addressed in version 2.2.1.",
            "remediation": "Upgrade body-parser from 2.2.0 to 2.2.1 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "low",
            "category": "npm",
            "file_path": "package-lock.json",
            "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.0 to 1.20.6, 2.3.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-31808",
            "title": "file-type: file-type: Denial of Service due to infinite loop in ASF file parsing",
            "description": "file-type detects the file type of a file, stream, or data. Prior to 21.3.1, a denial of service vulnerability exists in the ASF (WMV/WMA) file type detection parser. When parsing a crafted input where an ASF sub-header has a size field of zero, the parser enters an infinite loop. The payload value becomes negative (-24), causing tokenizer.ignore(payload) to move the read position backwards, so the same sub-header is read repeatedly forever. Any application that uses file-type to detect the type",
            "remediation": "Upgrade file-type from 21.0.0 to 21.3.1 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-32630",
            "title": "file-type: file-type: Denial of Service via excessive memory growth from crafted ZIP files",
            "description": "file-type detects the file type of a file, stream, or data. From 20.0.0 to 21.3.1, a crafted ZIP file can trigger excessive memory growth during type detection in file-type when using fileTypeFromBuffer(), fileTypeFromBlob(), or fileTypeFromFile(). The ZIP inflate output limit is enforced for stream-based detection, but not for known-size inputs. As a result, a small compressed ZIP can cause file-type to inflate and process a much larger payload while probing ZIP-based formats such as OOXML. Thi",
            "remediation": "Upgrade file-type from 21.0.0 to 21.3.2 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-4800",
            "title": "lodash: lodash: Arbitrary code execution via untrusted input in template imports",
            "description": "Impact:\n\nThe fix for CVE-2021-23337 (https://github.com/advisories/GHSA-35jh-r3h4-6jhm) added validation for the variable option in _.template but did not apply the same validation to options.imports key names. Both paths flow into the same Function() constructor sink.\n\nWhen an application passes untrusted input as options.imports key names, an attacker can inject default-parameter expressions that execute arbitrary code at template compilation time.\n\nAdditionally, _.template uses assignInWith t",
            "remediation": "Upgrade lodash from 4.17.21 to 4.18.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2025-13465",
            "title": "lodash: prototype pollution in _.unset and _.omit functions",
            "description": "Lodash versions 4.0.0 through 4.17.22 are vulnerable to prototype pollution in the _.unset\u00a0and _.omit\u00a0functions. An attacker can pass crafted paths which cause Lodash to delete methods from global prototypes.\n\nThe issue permits deletion of properties but does not allow overwriting their original behavior.\n\nThis issue is patched on 4.17.23",
            "remediation": "Upgrade lodash from 4.17.21 to 4.17.23 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-2950",
            "title": "lodash: Lodash: Prototype pollution allows deletion of built-in prototype properties via array path bypass",
            "description": "Impact:\n\nLodash versions 4.17.23 and earlier are vulnerable to prototype pollution in the _.unset and _.omit functions. The fix for (CVE-2025-13465: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg) only guards against string key members, so an attacker can bypass the check by passing array-wrapped path segments. This allows deletion of properties from built-in prototypes such as Object.prototype, Number.prototype, and String.prototype.\n\nThe issue permits deletion of prot",
            "remediation": "Upgrade lodash from 4.17.21 to 4.18.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "npm",
            "file_path": "package-lock.json",
            "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": "npm",
            "file_path": "package-lock.json",
            "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": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2025-15284",
            "title": "qs: qs: Denial of Service via improper input validation in array parsing",
            "description": "Improper Input Validation vulnerability in qs (parse modules) allows HTTP DoS.This issue affects qs: < 6.14.1.\n\n\nSummary\n\nThe arrayLimit\u00a0option in qs did not enforce limits for bracket notation (a[]=1&a[]=2), only for indexed notation (a[0]=1). This is a consistency bug; arrayLimit\u00a0should apply uniformly across all array notations.\n\nNote:\u00a0The default parameterLimit\u00a0of 1000 effectively mitigates the DoS scenario originally described. With default options, bracket notation cannot produce arrays la",
            "remediation": "Upgrade qs from 6.14.0 to 6.14.1 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "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.0 to 6.15.2 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "low",
            "category": "npm",
            "file_path": "package-lock.json",
            "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.0 to 6.14.2 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-12151",
            "title": "undici: undici: Denial of Service due to unbounded memory growth via WebSocket frames",
            "description": "Impact:\nThe undici WebSocket client enforces maxPayloadSize on the cumulative byte count of fragments in a message but does not enforce a limit on the number of fragments. A malicious WebSocket server can stream many small or empty continuation frames that each pass per-frame and cumulative-size validation, collectively causing unbounded memory growth in the client process. The result is memory exhaustion and a denial of service.\n\nAffected applications are those using the undici WebSocket client",
            "remediation": "Upgrade undici from 7.11.0 to 6.27.0, 7.28.0, 8.5.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-1526",
            "title": "undici: undici: Denial of Service via unbounded memory consumption during WebSocket permessage-deflate decompression",
            "description": "The undici WebSocket client is vulnerable to a denial-of-service attack via unbounded memory consumption during permessage-deflate decompression. When a WebSocket connection negotiates the permessage-deflate extension, the client decompresses incoming compressed frames without enforcing any limit on the decompressed data size. A malicious WebSocket server can send a small compressed frame (a \"decompression bomb\") that expands to an extremely large size in memory, causing the Node.js process to e",
            "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-1528",
            "title": "undici: undici: Denial of Service via crafted WebSocket frame with large length",
            "description": "ImpactA server can reply with a WebSocket frame using the 64-bit length form and an extremely large length. undici's ByteParser overflows internal math, ends up in an invalid state, and throws a fatal TypeError that terminates the process.\n\nPatches\n\nPatched in the undici version v7.24.0 and v6.24.0. Users should upgrade to this version or later.",
            "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "high",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-2229",
            "title": "undici: Undici: Denial of Service via invalid WebSocket permessage-deflate extension parameter",
            "description": "ImpactThe undici WebSocket client is vulnerable to a denial-of-service attack due to improper validation of the\u00a0server_max_window_bits\u00a0parameter in the permessage-deflate extension. When a WebSocket client connects to a server, it automatically advertises support for permessage-deflate compression. A malicious server can respond with an out-of-range\u00a0server_max_window_bits\u00a0value (outside zlib's valid range of 8-15). When the server subsequently sends a compressed frame, the client attempts to cre",
            "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-1525",
            "title": "undici: Undici: HTTP Request Smuggling and Denial of Service due to duplicate Content-Length headers",
            "description": "Undici allows duplicate HTTP\u00a0Content-Length\u00a0headers when they are provided in an array with case-variant names (e.g.,\u00a0Content-Length\u00a0and\u00a0content-length). This produces malformed HTTP/1.1 requests with multiple conflicting\u00a0Content-Length\u00a0values on the wire.\n\nWho is impacted:\n\n  *  Applications using\u00a0undici.request(),\u00a0undici.Client, or similar low-level APIs with headers passed as flat arrays\n  *  Applications that accept user-controlled header names without case-normalization\n\n\nPotential conseque",
            "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-1527",
            "title": "undici: Undici: HTTP header injection and request smuggling vulnerability",
            "description": "ImpactWhen an application passes user-controlled input to the\u00a0upgrade\u00a0option of\u00a0client.request(), an attacker can inject CRLF sequences (\\r\\n) to:\n\n  *  Inject arbitrary HTTP headers\n  *  Terminate the HTTP request prematurely and smuggle raw data to non-HTTP services (Redis, Memcached, Elasticsearch)\nThe vulnerability exists because undici writes the\u00a0upgrade\u00a0value directly to the socket without validating for invalid header characters:\n\n// lib/dispatcher/client-h1.js:1121\nif (upgrade) {\n  heade",
            "remediation": "Upgrade undici from 7.11.0 to 6.24.0, 7.24.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-22036",
            "title": "undici: Undici: Denial of Service via excessive decompression steps",
            "description": "Undici is an HTTP/1.1 client for Node.js. Prior to 7.18.0 and 6.23.0, the number of links in the decompression chain is unbounded and the default maxHeaderSize allows a malicious server to insert thousands compression steps leading to high CPU usage and excessive memory allocation. This vulnerability is fixed in 7.18.0 and 6.23.0.",
            "remediation": "Upgrade undici from 7.11.0 to 7.18.2, 6.23.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-9678",
            "title": "undici: Undici: Information disclosure due to improper cache-control header parsing",
            "description": "Impact:\nUndici's cache interceptor incorrectly classifies some responses as cacheable when the upstream Cache-Control header uses whitespace-padded qualified private or no-cache field names such as private=\" authorization\" or no-cache=\"\\tauthorization\". The parser preserves the surrounding whitespace, so later comparisons against the literal authorization field name fail and the response is stored.\n\nIn shared-cache mode, this allows a response containing one user's authenticated data to be serve",
            "remediation": "Upgrade undici from 7.11.0 to 7.28.0, 8.5.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-9679",
            "title": "undici: undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
            "description": "Impact:\nundici's cookie parser in parseSetCookie percent-decodes cookie values via qsUnescape, turning encoded sequences like %0D%0A, %00, %3B, and %3D into their literal byte equivalents. RFC 6265 \u00a75.4 does not specify any decoding and browsers do not decode either.\n\nApplications that parse a Set-Cookie header and then forward the parsed value into a response header (proxies, middleware, SSR frameworks) become vulnerable to HTTP response header injection: an attacker-controlled upstream can inj",
            "remediation": "Upgrade undici from 7.11.0 to 6.27.0, 7.28.0, 8.5.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "low",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-11525",
            "title": "undici: undici: Weakening of cookie SameSite policy due to incorrect parsing of Set-Cookie header",
            "description": "Impact:\nWhen undici parses a Set-Cookie header, it accepts any SameSite attribute value that contains Strict, Lax, or None as a substring, rather than the case-insensitive exact match specified by RFC 6265. Non-spec values are silently mapped to one of the three standard tokens. For example, SameSite=NoneOfYourBusiness is parsed as None (the most permissive setting), and SameSite=StrictLax is parsed as Lax (a downgrade from Strict).\n\nAffected applications are those that consume Set-Cookie header",
            "remediation": "Upgrade undici from 7.11.0 to 6.27.0, 7.28.0, 8.5.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "low",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-6733",
            "title": "undici: Undici: Response queue poisoning on reused keep-alive sockets can lead to incorrect response delivery.",
            "description": "Impact:\nUndici's HTTP/1.1 client is vulnerable to response queue poisoning on reused keep-alive sockets. An attacker-controlled upstream server can inject an unsolicited HTTP/1.1 response onto an idle socket after a request completes. When the client dispatches the next request on that socket, it associates the injected response with the new request, causing responses to be delivered to the wrong requests.\n\nThis requires an attacker-controlled or compromised upstream HTTP/1.1 server and keep-ali",
            "remediation": "Upgrade undici from 7.11.0 to 6.27.0, 7.28.0, 8.5.0 or later"
          },
          {
            "tool_name": "trivy",
            "severity": "medium",
            "category": "npm",
            "file_path": "package-lock.json",
            "line_number": null,
            "rule_identifier": "CVE-2026-33532",
            "title": "yaml: yaml: Denial of Service via deeply nested YAML document parsing",
            "description": "`yaml` is a YAML parser and serialiser for JavaScript. Parsing a YAML document with a version of `yaml` on the 1.x branch prior to 1.10.3 or on the 2.x branch prior to 2.8.3 may throw a RangeError due to a stack overflow. The node resolution/composition phase uses recursive function calls without a depth bound. An attacker who can supply YAML for parsing can trigger a `RangeError: Maximum call stack size exceeded` with a small payload (~2\u201310 KB). The `RangeError` is not a `YAMLParseError`, so ap",
            "remediation": "Upgrade yaml from 2.8.0 to 2.8.3, 1.10.3 or later"
          }
        ],
        "execution_duration_seconds": 1.6182998800068162,
        "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": 9,
            "medium": 15,
            "critical": 0,
            "informational": 0
          },
          "manifests_scanned": [
            "package-lock.json"
          ]
        },
        "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": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-7h2j-956f-4vf2",
            "title": "GHSA-7h2j-956f-4vf2 \u2014 npm @isaacs/brace-expansion@5.0.0",
            "description": "aliases: CVE-2026-25547, GHSA-7h2j-956f-4vf2 | CVSS: 8.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-345p-7cg4-v4c7",
            "title": "GHSA-345p-7cg4-v4c7 \u2014 npm @modelcontextprotocol/sdk@1.15.1",
            "description": "aliases: CVE-2026-25536, GHSA-345p-7cg4-v4c7 | CVSS: 7.1",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-8r9q-7v3j-jr4g",
            "title": "GHSA-8r9q-7v3j-jr4g \u2014 npm @modelcontextprotocol/sdk@1.15.1",
            "description": "aliases: CVE-2026-0621, GHSA-8r9q-7v3j-jr4g | CVSS: 8.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-w48q-cv73-mx4w",
            "title": "GHSA-w48q-cv73-mx4w \u2014 npm @modelcontextprotocol/sdk@1.15.1",
            "description": "aliases: CVE-2025-66414, GHSA-w48q-cv73-mx4w | CVSS: 7.6",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-2g4f-4pwh-qvx6",
            "title": "GHSA-2g4f-4pwh-qvx6 \u2014 npm ajv@6.12.6",
            "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/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-v422-hmwv-36x6",
            "title": "GHSA-v422-hmwv-36x6 \u2014 npm body-parser@2.2.0",
            "description": "aliases: CVE-2026-12590, GHSA-v422-hmwv-36x6 | CVSS: 3.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-wqch-xfxh-vrr4",
            "title": "GHSA-wqch-xfxh-vrr4 \u2014 npm body-parser@2.2.0",
            "description": "aliases: CVE-2025-13466, GHSA-wqch-xfxh-vrr4 | CVSS: 5.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-3jxr-9vmj-r5cp",
            "title": "GHSA-3jxr-9vmj-r5cp \u2014 npm brace-expansion@1.1.12",
            "description": "aliases: CVE-2026-13149, GHSA-3jxr-9vmj-r5cp | CVSS: 7.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-f886-m6hf-6m8v",
            "title": "GHSA-f886-m6hf-6m8v \u2014 npm brace-expansion@1.1.12",
            "description": "aliases: CVE-2026-33750, GHSA-f886-m6hf-6m8v | CVSS: 6.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-3jxr-9vmj-r5cp",
            "title": "GHSA-3jxr-9vmj-r5cp \u2014 npm brace-expansion@2.0.2",
            "description": "aliases: CVE-2026-13149, GHSA-3jxr-9vmj-r5cp | CVSS: 7.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-f886-m6hf-6m8v",
            "title": "GHSA-f886-m6hf-6m8v \u2014 npm brace-expansion@2.0.2",
            "description": "aliases: CVE-2026-33750, GHSA-f886-m6hf-6m8v | CVSS: 6.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-5v7r-6r5c-r473",
            "title": "GHSA-5v7r-6r5c-r473 \u2014 npm file-type@21.0.0",
            "description": "aliases: CVE-2026-31808, GHSA-5v7r-6r5c-r473 | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-j47w-4g3g-c36v",
            "title": "GHSA-j47w-4g3g-c36v \u2014 npm file-type@21.0.0",
            "description": "aliases: CVE-2026-32630, GHSA-j47w-4g3g-c36v | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-25h7-pfq9-p65f",
            "title": "GHSA-25h7-pfq9-p65f \u2014 npm flatted@3.3.3",
            "description": "aliases: CVE-2026-32141, GHSA-25h7-pfq9-p65f | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-rf6f-7fwh-wjgh",
            "title": "GHSA-rf6f-7fwh-wjgh \u2014 npm flatted@3.3.3",
            "description": "aliases: CVE-2026-33228, GHSA-rf6f-7fwh-wjgh | CVSS: 8.9",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-5j98-mcp5-4vw2",
            "title": "GHSA-5j98-mcp5-4vw2 \u2014 npm glob@10.4.5",
            "description": "aliases: CVE-2025-64756, GHSA-5j98-mcp5-4vw2 | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-5j98-mcp5-4vw2",
            "title": "GHSA-5j98-mcp5-4vw2 \u2014 npm glob@11.0.3",
            "description": "aliases: CVE-2025-64756, GHSA-5j98-mcp5-4vw2 | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-52cp-r559-cp3m",
            "title": "GHSA-52cp-r559-cp3m \u2014 npm js-yaml@4.1.0",
            "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/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-h67p-54hq-rp68",
            "title": "GHSA-h67p-54hq-rp68 \u2014 npm js-yaml@4.1.0",
            "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/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-mh29-5h37-fv8m",
            "title": "GHSA-mh29-5h37-fv8m \u2014 npm js-yaml@4.1.0",
            "description": "aliases: CVE-2025-64718, GHSA-mh29-5h37-fv8m | CVSS: 5.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-f23m-r3pf-42rh",
            "title": "GHSA-f23m-r3pf-42rh \u2014 npm lodash@4.17.21",
            "description": "aliases: CVE-2025-13465, CVE-2026-2950, GHSA-f23m-r3pf-42rh, GHSA-xxjr-mmjv-4gpg | CVSS: 6.9",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-r5fr-rjxr-66jc",
            "title": "GHSA-r5fr-rjxr-66jc \u2014 npm lodash@4.17.21",
            "description": "aliases: CVE-2021-23337, CVE-2026-4800, GHSA-35jh-r3h4-6jhm, GHSA-r5fr-rjxr-66jc | CVSS: 8.1",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-23c5-xmqv-rm74",
            "title": "GHSA-23c5-xmqv-rm74 \u2014 npm minimatch@10.0.3",
            "description": "aliases: CVE-2026-27904, GHSA-23c5-xmqv-rm74 | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-3ppc-4f35-3m26",
            "title": "GHSA-3ppc-4f35-3m26 \u2014 npm minimatch@10.0.3",
            "description": "aliases: CVE-2026-26996, GHSA-3ppc-4f35-3m26 | CVSS: 8.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-7r86-cg39-jmmj",
            "title": "GHSA-7r86-cg39-jmmj \u2014 npm minimatch@10.0.3",
            "description": "aliases: CVE-2026-27903, GHSA-7r86-cg39-jmmj | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-23c5-xmqv-rm74",
            "title": "GHSA-23c5-xmqv-rm74 \u2014 npm minimatch@3.1.2",
            "description": "aliases: CVE-2026-27904, GHSA-23c5-xmqv-rm74 | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-3ppc-4f35-3m26",
            "title": "GHSA-3ppc-4f35-3m26 \u2014 npm minimatch@3.1.2",
            "description": "aliases: CVE-2026-26996, GHSA-3ppc-4f35-3m26 | CVSS: 8.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-7r86-cg39-jmmj",
            "title": "GHSA-7r86-cg39-jmmj \u2014 npm minimatch@3.1.2",
            "description": "aliases: CVE-2026-27903, GHSA-7r86-cg39-jmmj | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-23c5-xmqv-rm74",
            "title": "GHSA-23c5-xmqv-rm74 \u2014 npm minimatch@9.0.5",
            "description": "aliases: CVE-2026-27904, GHSA-23c5-xmqv-rm74 | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-3ppc-4f35-3m26",
            "title": "GHSA-3ppc-4f35-3m26 \u2014 npm minimatch@9.0.5",
            "description": "aliases: CVE-2026-26996, GHSA-3ppc-4f35-3m26 | CVSS: 8.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-7r86-cg39-jmmj",
            "title": "GHSA-7r86-cg39-jmmj \u2014 npm minimatch@9.0.5",
            "description": "aliases: CVE-2026-27903, GHSA-7r86-cg39-jmmj | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "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/package-lock.json",
            "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/package-lock.json",
            "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/package-lock.json",
            "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/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-3v7f-55p6-f55p",
            "title": "GHSA-3v7f-55p6-f55p \u2014 npm picomatch@4.0.3",
            "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/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-c2c7-rcm5-vvqj",
            "title": "GHSA-c2c7-rcm5-vvqj \u2014 npm picomatch@4.0.3",
            "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/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-6rw7-vpxm-498p",
            "title": "GHSA-6rw7-vpxm-498p \u2014 npm qs@6.14.0",
            "description": "aliases: CVE-2025-15284, GHSA-6rw7-vpxm-498p | CVSS: 6.3",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-q8mj-m7cp-5q26",
            "title": "GHSA-q8mj-m7cp-5q26 \u2014 npm qs@6.14.0",
            "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/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-w7fw-mjwx-w883",
            "title": "GHSA-w7fw-mjwx-w883 \u2014 npm qs@6.14.0",
            "description": "aliases: CVE-2026-2391, GHSA-w7fw-mjwx-w883 | CVSS: 3.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-mw96-cpmx-2vgc",
            "title": "GHSA-mw96-cpmx-2vgc \u2014 npm rollup@4.46.2",
            "description": "aliases: CVE-2026-27606, GHSA-mw96-cpmx-2vgc | CVSS: 8.8",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-2mjp-6q6p-2qxm",
            "title": "GHSA-2mjp-6q6p-2qxm \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-1525, GHSA-2mjp-6q6p-2qxm | CVSS: 6.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "low",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-35p6-xmwp-9g52",
            "title": "GHSA-35p6-xmwp-9g52 \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-6733, GHSA-35p6-xmwp-9g52 | CVSS: 3.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-4992-7rv2-5pvq",
            "title": "GHSA-4992-7rv2-5pvq \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-1527, GHSA-4992-7rv2-5pvq | CVSS: 4.6",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-f269-vfmq-vjvj",
            "title": "GHSA-f269-vfmq-vjvj \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-1528, GHSA-f269-vfmq-vjvj | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "low",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-g8m3-5g58-fq7m",
            "title": "GHSA-g8m3-5g58-fq7m \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-11525, GHSA-g8m3-5g58-fq7m | CVSS: 3.7",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-g9mf-h72j-4rw9",
            "title": "GHSA-g9mf-h72j-4rw9 \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-22036, GHSA-g9mf-h72j-4rw9 | CVSS: 5.9",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-p88m-4jfj-68fv",
            "title": "GHSA-p88m-4jfj-68fv \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-9679, GHSA-p88m-4jfj-68fv | CVSS: 5.9",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-pr7r-676h-xcf6",
            "title": "GHSA-pr7r-676h-xcf6 \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-9678, GHSA-pr7r-676h-xcf6 | CVSS: 5.9",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-v9p9-hfj2-hcw8",
            "title": "GHSA-v9p9-hfj2-hcw8 \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-2229, GHSA-v9p9-hfj2-hcw8 | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-vrm6-8vpv-qv8q",
            "title": "GHSA-vrm6-8vpv-qv8q \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-1526, GHSA-vrm6-8vpv-qv8q | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "high",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-vxpw-j846-p89q",
            "title": "GHSA-vxpw-j846-p89q \u2014 npm undici@7.11.0",
            "description": "aliases: CVE-2026-12151, GHSA-vxpw-j846-p89q | CVSS: 7.5",
            "remediation": null
          },
          {
            "tool_name": "osv-scanner",
            "severity": "medium",
            "category": "npm",
            "file_path": "/repo/package-lock.json",
            "line_number": null,
            "rule_identifier": "GHSA-48c2-rrv3-qjmp",
            "title": "GHSA-48c2-rrv3-qjmp \u2014 npm yaml@2.8.0",
            "description": "aliases: CVE-2026-33532, GHSA-48c2-rrv3-qjmp | CVSS: 4.3",
            "remediation": null
          }
        ],
        "execution_duration_seconds": 33.74122707100469,
        "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": 29,
            "medium": 20,
            "critical": 0,
            "informational": 0
          },
          "manifests_scanned": [
            "/repo/package-lock.json"
          ],
          "finding_id_aliases": {
            "GHSA-23c5-xmqv-rm74": [
              "CVE-2026-27904",
              "CVE-2026-27904",
              "CVE-2026-27904"
            ],
            "GHSA-25h7-pfq9-p65f": [
              "CVE-2026-32141"
            ],
            "GHSA-27v5-c462-wpq7": [
              "CVE-2026-4923"
            ],
            "GHSA-2g4f-4pwh-qvx6": [
              "CVE-2025-69873"
            ],
            "GHSA-2mjp-6q6p-2qxm": [
              "CVE-2026-1525"
            ],
            "GHSA-345p-7cg4-v4c7": [
              "CVE-2026-25536"
            ],
            "GHSA-35p6-xmwp-9g52": [
              "CVE-2026-6733"
            ],
            "GHSA-3jxr-9vmj-r5cp": [
              "CVE-2026-13149",
              "CVE-2026-13149"
            ],
            "GHSA-3ppc-4f35-3m26": [
              "CVE-2026-26996",
              "CVE-2026-26996",
              "CVE-2026-26996"
            ],
            "GHSA-3v7f-55p6-f55p": [
              "CVE-2026-33672",
              "CVE-2026-33672"
            ],
            "GHSA-48c2-rrv3-qjmp": [
              "CVE-2026-33532"
            ],
            "GHSA-4992-7rv2-5pvq": [
              "CVE-2026-1527"
            ],
            "GHSA-52cp-r559-cp3m": [
              "CVE-2026-59869"
            ],
            "GHSA-5j98-mcp5-4vw2": [
              "CVE-2025-64756",
              "CVE-2025-64756"
            ],
            "GHSA-5v7r-6r5c-r473": [
              "CVE-2026-31808"
            ],
            "GHSA-6rw7-vpxm-498p": [
              "CVE-2025-15284"
            ],
            "GHSA-7h2j-956f-4vf2": [
              "CVE-2026-25547"
            ],
            "GHSA-7r86-cg39-jmmj": [
              "CVE-2026-27903",
              "CVE-2026-27903",
              "CVE-2026-27903"
            ],
            "GHSA-8r9q-7v3j-jr4g": [
              "CVE-2026-0621"
            ],
            "GHSA-c2c7-rcm5-vvqj": [
              "CVE-2026-33671",
              "CVE-2026-33671"
            ],
            "GHSA-f23m-r3pf-42rh": [
              "CVE-2025-13465",
              "CVE-2026-2950",
              "GHSA-xxjr-mmjv-4gpg"
            ],
            "GHSA-f269-vfmq-vjvj": [
              "CVE-2026-1528"
            ],
            "GHSA-f886-m6hf-6m8v": [
              "CVE-2026-33750",
              "CVE-2026-33750"
            ],
            "GHSA-g8m3-5g58-fq7m": [
              "CVE-2026-11525"
            ],
            "GHSA-g9mf-h72j-4rw9": [
              "CVE-2026-22036"
            ],
            "GHSA-h67p-54hq-rp68": [
              "CVE-2026-53550"
            ],
            "GHSA-j3q9-mxjg-w52f": [
              "CVE-2026-4926"
            ],
            "GHSA-j47w-4g3g-c36v": [
              "CVE-2026-32630"
            ],
            "GHSA-mh29-5h37-fv8m": [
              "CVE-2025-64718"
            ],
            "GHSA-mw96-cpmx-2vgc": [
              "CVE-2026-27606"
            ],
            "GHSA-p88m-4jfj-68fv": [
              "CVE-2026-9679"
            ],
            "GHSA-pr7r-676h-xcf6": [
              "CVE-2026-9678"
            ],
            "GHSA-q8mj-m7cp-5q26": [
              "CVE-2026-8723"
            ],
            "GHSA-r5fr-rjxr-66jc": [
              "CVE-2021-23337",
              "CVE-2026-4800",
              "GHSA-35jh-r3h4-6jhm"
            ],
            "GHSA-rf6f-7fwh-wjgh": [
              "CVE-2026-33228"
            ],
            "GHSA-v422-hmwv-36x6": [
              "CVE-2026-12590"
            ],
            "GHSA-v9p9-hfj2-hcw8": [
              "CVE-2026-2229"
            ],
            "GHSA-vrm6-8vpv-qv8q": [
              "CVE-2026-1526"
            ],
            "GHSA-vxpw-j846-p89q": [
              "CVE-2026-12151"
            ],
            "GHSA-w48q-cv73-mx4w": [
              "CVE-2025-66414"
            ],
            "GHSA-w7fw-mjwx-w883": [
              "CVE-2026-2391"
            ],
            "GHSA-wqch-xfxh-vrr4": [
              "CVE-2025-13466"
            ]
          },
          "cross_scanner_correlation": {
            "only_osv": [
              "GHSA-23c5-xmqv-rm74",
              "GHSA-25h7-pfq9-p65f",
              "GHSA-3jxr-9vmj-r5cp",
              "GHSA-3ppc-4f35-3m26",
              "GHSA-3v7f-55p6-f55p",
              "GHSA-52cp-r559-cp3m",
              "GHSA-5j98-mcp5-4vw2",
              "GHSA-7h2j-956f-4vf2",
              "GHSA-7r86-cg39-jmmj",
              "GHSA-c2c7-rcm5-vvqj",
              "GHSA-f886-m6hf-6m8v",
              "GHSA-h67p-54hq-rp68",
              "GHSA-mh29-5h37-fv8m",
              "GHSA-mw96-cpmx-2vgc",
              "GHSA-rf6f-7fwh-wjgh"
            ],
            "only_trivy": [],
            "intersection_ids": [
              "CVE-2025-13465",
              "CVE-2025-13466",
              "CVE-2025-15284",
              "CVE-2025-66414",
              "CVE-2025-69873",
              "CVE-2026-0621",
              "CVE-2026-11525",
              "CVE-2026-12151",
              "CVE-2026-12590",
              "CVE-2026-1525",
              "CVE-2026-1526",
              "CVE-2026-1527",
              "CVE-2026-1528",
              "CVE-2026-22036",
              "CVE-2026-2229",
              "CVE-2026-2391",
              "CVE-2026-25536",
              "CVE-2026-2950",
              "CVE-2026-31808",
              "CVE-2026-32630",
              "CVE-2026-33532",
              "CVE-2026-4800",
              "CVE-2026-4923",
              "CVE-2026-4926",
              "CVE-2026-6733",
              "CVE-2026-8723",
              "CVE-2026-9678",
              "CVE-2026-9679"
            ]
          }
        },
        "display_score": 0.0,
        "display_badge": "Unsafe"
      }
    ]
  },
  "report": {
    "report_id": "c6ec4f9a-c3a7-4871-bcbc-0ac7227e56af",
    "format": "json",
    "generated_at": "2026-07-22T22:43:48.121477+00:00",
    "scanner_filter": null,
    "signature": null
  }
}