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
{{ message }}
Repository navigation
CodeQL flags request host and path reaching slog in plugins #1621
CodeQL (go/log-injection, medium) will flag plugins that pass pctx.Host or pctx.Path to slog.* unsanitized. Both values are client-controlled. pctx.Host comes from the Host header. pctx.Path is the percent-decoded URL path, so a %0A in a request becomes a real newline in the log line.
Call sites, by log message. Line numbers are as of main at 5ba75a0:
cost/settle (core/cost/settle/settle.go:225, :229) — refused an implausible cost header, refused a cost header larger than any inference call could plausibly be
a2a-parser (core/plugins/a2aparser/plugin.go:60, :76) — invalid JSON-RPC, not an A2A-namespace method
context-guru (core/plugins/contextguru/plugin.go:253, :273) — skipped request with no session identity, and the per-request summary line
cpex (core/plugins/cpex/manager_cpex.go:587) — body modification requested but no protocol extension present
inference-parser (core/plugins/inferenceparser/plugin.go:90) — no/invalid body
mcp-parser (core/plugins/mcpparser/plugin.go:187, :203, :226, :241) — session terminate, transport stream, body is not valid JSON-RPC, not an MCP-namespace method
opa (core/plugins/opa/plugin.go:441, :493) — decision error on request, decision error on response
sparc (core/plugins/sparc/plugin.go:427, :431, :450) — reflector unavailable, failing open, reflector unavailable, failing closed, no inference context to ground against
token-exchange-aiac (core/plugins/tokenexchangeaiac/plugin.go:414, :418, :424, :458, :462) — audience exists but is not granted to this workload, the destination's client is disabled, token exchange failed (twice), host in another namespace names a target
Status
CodeQL reports only flows that pass through lines a PR changes, so any PR that edits code on a path to one of these sites will raise the alert. #1612 and #1533 had the same problem in the listeners and the session store. Found in review of #1616.
Fix
Wrap each value in pipeline.SanitizeLogValue, the helper #1616 added, which CodeQL recognizes as a log-injection sanitizer. Done when a PR that touches these log lines raises no go/log-injection alerts.
Activity