Skip to content

Triage the 47 remaining CodeQL alerts from the 2026-06-13 backlog #109

Description

@plavjanik

All open CodeQL alerts in this repository share a single creation timestamp, 2026-06-13T14:10:17Z — the moment CodeQL was first enabled during the CI hardening work. None have been triaged since. There are 50 open CodeQL alerts (plus 26 ESLint alerts, tracked separately).

Three of them, all in scripts/sdk-switch.js, are fixed in #106 because that PR already rewrites the affected function. This issue tracks the remaining 47.

Worth knowing before triaging: a large share sit in code that is not the shipped attack surface — the mock z/OS host is a deliberate test double, and zowe-mcp-evals plus scripts/ are developer tooling. Several are likely to be dismissals ("used in tests", "not exploitable") rather than code changes. The ones that deserve real scrutiny are those in the actual server transport and the VS Code extension.

By rule

Severity Count Rule
high 10 js/missing-rate-limiting
high 5 js/file-system-race
high 3 js/incomplete-sanitization
high 3 js/user-controlled-bypass
high 2 js/biased-cryptographic-random
high 2 js/clear-text-logging
high 2 js/regex-injection
high 2 js/remote-property-injection
high 1 js/insecure-temporary-file
high 1 js/insufficient-password-hash
high 1 js/polynomial-redos
medium 12 js/file-access-to-http
medium 1 js/http-to-file-access
medium 1 js/indirect-command-line-injection
medium 1 js/log-injection

By area

Count Area
23 packages/zowe-mcp-server
10 packages/zowe-mcp-evals
4 scripts/rephrase-tool-descriptions.mjs
4 scripts/download-zosmf-specs.mjs
3 packages/zowe-mcp-vscode
2 scripts/bundle-production-deps.cjs
1 scripts/set-version.js

Highest-value subset

These are in shipped code rather than tooling or test doubles, so they should be looked at first:

Suggested approach

  1. Triage each alert as real / false positive / accepted risk, starting with the subset above.
  2. Fix the real ones in small, reviewable PRs grouped by rule.
  3. Dismiss the rest through the Security tab with a written reason, so the count reaches zero and future alerts are visible rather than lost in the backlog.

A standing backlog this size means a genuinely new finding is easy to miss — getting to zero is most of the value here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions