Skip to content

imatza-rh/mcp-zuul

v0.4.0 Security

This release includes 5 security fixes for security teams reviewing exposed deployments.

Published 2mo MCP Developer Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 5 known CVEs

Affected surfaces

auth rce_ssrf

Summary

AI summary

Breaking changes include API field renames, type changes, and removals; multiple security mitigations for ReDoS, path traversal, and Kerberos thundering herd.

Full changelog

Security

  • Auth generation counter prevents thundering-herd Kerberos re-auth under concurrent tool calls
  • Streaming deadline (5 min) caps total log transfer time independently of per-chunk progress
  • ReDoS protection: grep context blocks use pre-built match set instead of re-running user-supplied regex
  • Gzip bomb prevention via incremental zlib.decompressobj with size cap in _fetch_job_output
  • LogJuicer report ID sanitized against path traversal

Breaking Changes

  • clean() now strips empty strings ("") and empty lists ([]) in addition to None — reduces token output
  • elapsed, remaining, estimated in status responses are now human-readable strings ("2m 30s") instead of raw seconds; elapsed_str/remaining_str removed
  • voting field omitted from builds and jobs when True (default) — only emitted when False
  • buildset_uuid, log_url, start_time, ref_url moved to non-brief output in fmt_buildlist_builds no longer includes these fields
  • chain_summary.critical_path_remaining replaced by chain_summary.cp_eta (human-readable string)

Performance

  • Token output reduced ~50% on list_builds, ~30% on get_status
  • diagnose_build fetches job-output.json and job-output.txt in parallel
  • get_build_test_results probes fallback paths and fetches XML files in parallel
  • grep_log_context uses single-pass regex with cached match indices
  • Thread pool executor for user-supplied grep patterns with 10s timeout
  • Streaming uses per-request httpx.Timeout(read=300s) so 5-minute deadline is reachable

Fixed

  • get_change_status best-effort buildset fallback now catches TimeoutException and ValueError
  • _compute_chain_summary handles dict-style dependencies and nameless jobs
  • _format_duration handles inf, nan, and negative values without crashing
  • parse_playbooks caps failed tasks at 50 and guards against non-dict host results
  • Defensive .get() throughout formatters and config tools

Full Changelog: https://github.com/imatza-rh/mcp-zuul/blob/main/CHANGELOG.md#040---2026-03-24

Breaking Changes

  • `clean()` now also strips empty strings (`""`) and empty lists (`[]`).
  • Status response fields `elapsed`, `remaining`, `estimated` are human‑readable strings (e.g., "2m 30s") instead of seconds; deprecated string variants `elapsed_str`, `remaining_str` removed.
  • `voting` field omitted from builds/jobs when its value is the default `True`. Only emitted when `False`.
  • Fields `buildset_uuid`, `log_url`, `start_time`, `ref_url` moved from brief output to non‑brief in `fmt_build`; `list_builds` no longer includes them.
  • `chain_summary.critical_path_remaining` replaced by human‑readable string field `chain_summary.cp_eta`.

Security Fixes

  • Auth generation counter prevents Kerberos thundering‑herd re‑auth under concurrent tool calls.
  • Streaming deadline caps total log transfer time to 5 minutes (300 s).
  • ReDoS protection: `grep_log_context` uses pre‑built match set instead of re‑executing user‑supplied regex.
  • Gzip bomb prevention via incremental `zlib.decompressobj` with size cap in `_fetch_job_output`.
  • LogJuicer report ID sanitized against path traversal.

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

Track imatza-rh/mcp-zuul

Get notified when new releases ship.

Sign up free

About imatza-rh/mcp-zuul

Zuul CI integration with 14 tools for build failure analysis, log search, pipeline status, and job configuration.

All releases →

Beta — feedback welcome: [email protected]