You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
Triage each alert as real / false positive / accepted risk, starting with the subset above.
Fix the real ones in small, reviewable PRs grouped by rule.
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.
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-evalsplusscripts/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
js/missing-rate-limitingjs/file-system-racejs/incomplete-sanitizationjs/user-controlled-bypassjs/biased-cryptographic-randomjs/clear-text-loggingjs/regex-injectionjs/remote-property-injectionjs/insecure-temporary-filejs/insufficient-password-hashjs/polynomial-redosjs/file-access-to-httpjs/http-to-file-accessjs/indirect-command-line-injectionjs/log-injectionBy area
packages/zowe-mcp-serverpackages/zowe-mcp-evalsscripts/rephrase-tool-descriptions.mjsscripts/download-zosmf-specs.mjspackages/zowe-mcp-vscodescripts/bundle-production-deps.cjsscripts/set-version.jsHighest-value subset
These are in shipped code rather than tooling or test doubles, so they should be looked at first:
js/remote-property-injection—packages/zowe-mcp-vscode/src/event-handler.ts:470js/remote-property-injection—packages/zowe-mcp-vscode/src/event-handler.ts:452js/user-controlled-bypass—packages/zowe-mcp-server/src/transports/http.ts:252js/user-controlled-bypass—packages/zowe-mcp-server/src/transports/http.ts:245js/user-controlled-bypass—packages/zowe-mcp-server/src/mock-host/zosmf/routes/authenticate.ts:152js/file-system-race—packages/zowe-mcp-server/src/scripts/generate-docs.ts:1173js/biased-cryptographic-random—packages/zowe-mcp-server/src/zos/temp-dsn.ts:54js/biased-cryptographic-random—packages/zowe-mcp-server/src/zos/temp-dsn.ts:52js/regex-injection—packages/zowe-mcp-server/src/zos/mock/filesystem-mock-backend.ts:172js/regex-injection—packages/zowe-mcp-server/src/mock-host/zosmf/routes/restfiles-ds-read.ts:245js/insufficient-password-hash—packages/zowe-mcp-vscode/src/event-handler.ts:206js/missing-rate-limiting—packages/zowe-mcp-server/src/transports/http.ts:332js/missing-rate-limiting—packages/zowe-mcp-server/src/transports/http.ts:315js/missing-rate-limiting—packages/zowe-mcp-server/src/transports/http.ts:237js/missing-rate-limiting—packages/zowe-mcp-server/src/mock-host/zosmf/routes/restfiles-ds-read.ts:94js/missing-rate-limiting—packages/zowe-mcp-server/src/mock-host/zosmf/routes/restfiles-ds-read.ts:91js/missing-rate-limiting—packages/zowe-mcp-server/src/mock-host/zosmf/routes/restfiles-ds-read.ts:88js/missing-rate-limiting—packages/zowe-mcp-server/src/mock-host/zosmf/routes/restfiles-ds.ts:52js/missing-rate-limiting—packages/zowe-mcp-server/src/mock-host/zosmf/routes/authenticate.ts:72js/missing-rate-limiting—packages/zowe-mcp-server/src/mock-host/zosmf/routes/authenticate.ts:68js/missing-rate-limiting—packages/zowe-mcp-server/src/mock-host/zosmf/routes/info.ts:41js/incomplete-sanitization—packages/zowe-mcp-server/src/scripts/generate-docs.ts:258js/incomplete-sanitization—packages/zowe-mcp-server/src/scripts/generate-docs.ts:185js/polynomial-redos—packages/zowe-mcp-server/src/mock-host/zosmf/middleware/auth.ts:33Suggested approach
A standing backlog this size means a genuinely new finding is easy to miss — getting to zero is most of the value here.