agent-task/capi: capiTransport re-attaches Bearer token on cross-host redirect
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 68/100
Direção de pesquisa
Comece em pkg/cmd/agent-task/capi/client.go, em capiTransport.RoundTrip, e compare o tratamento de Authorization com api/http_client.go, especialmente api.AddAuthTokenHeader e sua verificação de redirectHostnameChange. Reproduza o redirecionamento de host-A para host-B descrito na issue e verifique se a requisição redirecionada não carrega mais o Bearer token, enquanto as requisições para o mesmo host continuam carregando-o.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Describe the bug
capiTransport.RoundTrip (pkg/cmd/agent-task/capi/client.go:64) sets the Authorization header unconditionally on every request, including redirect follow-ups.
On a cross-host redirect, the Go stdlib's http.Client strips sensitive headers like Authorization, but capiTransport then immediately re-attaches the Bearer token on the next round-trip, effectively undoing the stdlib's protection.
The codebase already has the correct pattern in api.AddAuthTokenHeader (api/http_client.go:108-127), which inspects req.Response.Request to detect a redirect follow-up and skips re-attaching the token when the host changed. The two transports should be consistent with each other.
Steps to reproduce
- Wrap an
http.ClientwithnewCAPITransport(token, "http://host-A", http.DefaultTransport). - Make a GET request to
http://host-A/foo. - Host A responds with HTTP 302 redirecting to
http://host-B/leaked. - Observe that the request to host B includes
Authorization: Bearer <token>.
Expected behavior
Host B should receive an empty Authorization header, matching the behaviour of api.AddAuthTokenHeader and the stdlib's redirect strip.
Proposed fix
Mirror the redirectHostnameChange check from api.AddAuthTokenHeader inside capiTransport.RoundTrip.
- Linguagem predominante
- Go
- Estrelas
- 46.7k
- Forks
- 9.2k
- Merge médio
- 4d 4h
- PRs com merge (30d)
- 55
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de cli/cli
-
Help text for `gh ruleset view` and `gh search issues`/`prs` refers to flags these commands do not haveTalvez já em andamento @BagToad assumiu há 1 dia. Abertaneeds-triage
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
cli/cli#14718 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
docs: clarify gh api -f vs -F and @-file expansion in the gh skillTalvez já em andamento @MatiasOlivera assumiu há 3 dias. Abertaenhancement
Dificuldade 2/5 Meio dia Facilidade para iniciantes 62/100
cli/cli#14701 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
`gh skill update` help incorrectly promises to preserve locally added filesTalvez já em andamento @rajpreetcodes assumiu há 3 dias. Abertabug gh-skill priority-3
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
cli/cli#14647 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
`gh` skill description does not tell agents when to use it, so it is skipped for tasks it coversTalvez já em andamento @littfed assumiu há 9 dias. Abertaenhancement
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
cli/cli#14621 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
gh pr close --comment silently discards the comment when PR is already closed or mergedTalvez livre de novo @bunnysayzz assumiu há 40 dias e não há nenhum pull request aberto. Abertabug gh-pr priority-2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
cli/cli#14374 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Issues semelhantes
-
agent-butler-finding chore
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
jordansmall/spindrift#5575 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
JakeChampion/lang#12684 ·
Mantenedores costumam responder em até 1 dia
-
goose sub-agent runs are never indexed: blame finds no session for any file a `delegate` child wroteAbertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
C-bug O-community X-blathers-triaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
cockroachdb/cockroach#176150 · 1 comentário ·
Mantenedores costumam responder em até 12 dias
-
triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
wakatime/wakatime-cli#1649 ·
Mantenedores costumam responder em até 1 dia