What happened
mlflow/crewai/autolog.py converts the Agent llm field to a string that includes the provider API key and expands the Agent object into mlflow.spanInputs without consistent sanitization, so credential-bearing nested values are persisted to the trace backend or an OTLP destination where trace readers can retrieve them.
Why it matters
AI agent observability is intended to capture the agent's reasoning but here it also exfiltrates the LLM provider credential to every trace reader, leaking access to the operator's model API accounts and the data/conversations those keys can reach.
Attack vector
When a CrewAI Agent (with an LLM provider) is autologged, the agent llm field is stringified into the trace/span inputs including the provider API key, and the plaintext credential is written to the MLflow trace store or forwarded to an OTLP endpoint.
Affected systems
MLflow >= 2.19.0, < 3.17.0
Mitigation
Upgrade to MLflow 3.17.0 (GHSA-j7qq-vr8c-xvw3). Redact/rotate any provider keys that may already be in trace stores and disable OTLP forwarding of raw agent attributes.