Skip to content

fix(enterprise/aibridgeproxyd): stop injecting default port into forwarded Host header (#26656)#26663

Open
github-actions[bot] wants to merge 1 commit into
release/2.34from
backport/26656-to-2.34
Open

fix(enterprise/aibridgeproxyd): stop injecting default port into forwarded Host header (#26656)#26663
github-actions[bot] wants to merge 1 commit into
release/2.34from
backport/26656-to-2.34

Conversation

@github-actions

Copy link
Copy Markdown

Backport of #26656

Original PR: #26656 — fix(enterprise/aibridgeproxyd): stop injecting default port into forwarded Host header
Merge commit: c41d219
Requested by: @ssncferreira

…arded Host header (#26656)

## Problem

PR #23109 introduced port normalization for the private IP blocking
feature, which mutated `CoderAccessURL.Host` to always include the
default port (e.g. `coder.example.com:443`). This leaked into the `Host`
header of every request forwarded to the Coder server.

When `CODER_REDIRECT_TO_ACCESS_URL=true`, the `redirectToAccessURL`
middleware compared the `Host` header literally against the access URL
(`coder.example.com`), saw a mismatch, and returned a 307 redirect to
the Coder dashboard HTML page.

Copilot then received HTML instead of JSON:

```
Failed to start MCP client: Streamable HTTP error: Unexpected content type: text/html; charset=utf-8
Failed to load custom agents: SyntaxError: Unexpected token '<', "<!doctype "... is not valid JSON
```

## Changes

- Stop mutating `coderAccessURL.Host`; store the resolved port in a
separate field for `isBlockedIP`
- Update existing tests that asserted the old (mutated) `.Port()`
behavior
- Add test cases verifying the Host is preserved with and without an
explicit port

> Generated with the assistance of Coder Agents on behalf of
@ssncferreira

(cherry picked from commit c41d219)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant