CodeQL flags request host and path reaching slog in plugins
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 60/100
Direzione di ricerca
The log calls are in core/cost/settle/settle.go, core/plugins/a2aparser/plugin.go, core/plugins/contextguru/plugin.go, core/plugins/cpex/manager_cpex.go, and the other plugin files listed in the issue, each at the given line numbers. Start by finding pipeline.SanitizeLogValue, the helper added in #1616, and check how it is called there. Then wrap every pctx.Host and pctx.Path passed to slog in it. Done when a PR touching these lines raises no go/log-injection alerts in CodeQL.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
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 - ibac (
core/plugins/ibac/plugin.go:528,:541) —judge uncertain,judge unavailable - 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.
- Lingua principale
- Go
- Stelle
- 23
- Fork
- 44
- Merge medio
- 16h 8m
- PR unite (30g)
- 234
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rossoctl/cortex
-
feedback laptop
Difficoltà 5/5 Più di una settimana Idoneità per principianti 28/100
I maintainer di solito rispondono entro 1 giorno
-
chore: Remove the decline_responses_websockets translation after a deprecation releaseForse già presa @Alan-Cha l’ha presa 3 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
rossoctl/cortex#1625 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 Più di una settimana Idoneità per principianti 18/100
I maintainer di solito rispondono entro 1 giorno
-
agentop configure codex/opencode can wait on itself when an agent runs itForse già presa @Alan-Cha l’ha presa 9 giorni fa. Aperta
rossoctl/cortex#1530 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rossoctl/cortex
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/TypeScript#65370 ·
I maintainer di solito rispondono entro 1 giorno
-
bug tech debt testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
aws/amazon-vpc-cni-k8s#3976 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
txn2/mcp-data-platform#2522 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
open-telemetry/opentelemetry-go-contrib#10234 ·
I maintainer di solito rispondono entro 1 giorno
-
discovery/backoff: default FindPeers limit yields no fresh peersForse già presa @zakazaka95 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100