This release includes 2 security fixes for security teams reviewing exposed deployments.
Published 24d
MCP Developer Tools
✓ No known CVEs patched
This release patches 2 known CVEs
Affected surfaces
auth
Summary
AI summaryRemoved enqueue_ref tool; unified enqueue functionality into enqueue.
Full changelog
Changed
enqueuetool now supports both change-based and ref-based enqueue in a single tool. The separateenqueue_reftool has been removed. Passref,oldrev,newrevparameters toenqueuefor periodic pipeline re-triggers (total tools: 39 → 38)
Fixed
- Kerberos re-auth no longer fails silently when the httpx client has a stale JWT Bearer header. The authorization header is now cleared alongside cookies before re-auth, allowing Apache to fall through to the OIDC redirect flow instead of returning 401 on the stale token
_api_mutate(POST/DELETE) detects OIDC session-expired redirects (301/302/303) and triggers Kerberos re-auth instead of following the redirect. Without this fix, httpx converted POST to GET on 302, silently losing the request bodydiagnose_buildandget_build_failuresno longer misattribute rescued Ansible tasks as root causes. The classifier now uses the lastinner_failuresentry (the actual play-killer) instead of the first (typically a rescued task). Also fixesextract_inner_failuresto preserve the last entry when themax_failurescap truncates resultsreenqueue_buildsetread-only guard is now enforced centrally in_api_mutateinstead of per-tool, consistent with all other write operations
Added
reenqueue_buildsettool: re-enqueue a previous buildset by looking up its project/pipeline/ref and enqueuing it again. Useful for re-triggering periodic pipeline runs- OIDC state parameter validation on JWT auth code callback prevents CSRF-style code injection during the Kerberos OIDC flow
- Session verification GET after Kerberos auth catches silent auth failures (e.g. stale client state producing an invalid session)
- JWT acquisition failures are isolated with try/except so Phase 2 (JWT) crashes don't prevent Phase 1 (session cookies) from completing. Read-only operations continue working even if JWT acquisition fails
parse_rescued_count()extracts therescued=Ncount from Ansible PLAY RECAP strings. Therescued_countfield is included indiagnose_buildandget_build_failuresoutput when non-zero
Security
- OIDC auth code extraction now uses proper query parameter parsing (
parse_qs) instead of substring matching on the full redirect URL - OIDC state parameter is validated against the expected value before exchanging the auth code for a JWT
Breaking Changes
- Removed `enqueue_ref` tool; all enqueue operations must now use `enqueue` with `ref`, `oldrev`, and `newrev` parameters.
Security Fixes
- OIDC auth code extraction now uses `parse_qs` instead of substring matching (prevents malformed URL attacks).
- OIDC state parameter is validated against the expected value before exchanging the auth code for a JWT (mitigates CSRF‑style injection).
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About imatza-rh/mcp-zuul
Zuul CI integration with 14 tools for build failure analysis, log search, pipeline status, and job configuration.
Related context
Beta — feedback welcome: [email protected]