security: `serve` has no Host allowlist, so a passwordless server answers DNS-rebinding pages
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 30/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- typescript
Rechercherichtung
Start by reading server.ts around the password and browserOriginRefusal checks, then inspect the /altimate/* routes and the existing isTraceShaped list handling. The issue proposes a Host allowlist and also raises trace shape checking and prompt title exposure; agree on scope and expected behavior before implementation. Done means the chosen protections are covered by tests for allowed and refused hosts and the reported trace cases.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Found during the v0.12.7 release review (CTO, tech lead and compliance reviewers). Deferred because it changes how every serve route is reached, not just this release's.
With no OPENCODE_SERVER_PASSWORD, basic auth is skipped (server.ts ~300) and browserOriginRefusal passes any request without an Origin header. A same-origin fetch after DNS rebinding sends no Origin and Sec-Fetch-Site: same-origin, so it gets through. The server never checks Host. Not verified with a live rebinding; read from the code.
This is the posture of every serve route, but #1415's /altimate/trace routes now serve prompts, SQL and query results, which raises the stakes.
Proposed: refuse any request whose Host isn't loopback (localhost, 127.0.0.1, [::1]) or the configured hostname, at least on /altimate/*.
Related, same routes:
GET /altimate/trace/:id/viewdoesn't shape-check the file like the list does (isTraceShaped), so a foreign JSON file named<id>.jsonrenders a broken page (500) instead of a 404.- The list falls back to the raw first prompt as a trace's title (
server.ts~1301), so prompt text appears in list JSON. Consider truncating it.
(v0.12.7 already adds a CSP to the viewer page so script in trace content can't call the API.)
- Vorherrschende Sprache
- TypeScript
- Sterne
- 812
- Forks
- 123
- Ø Merge
- 1 T. 16 Std.
- Gemergte PRs (30 T.)
- 85
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus AltimateAI/altimate-code
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
AltimateAI/altimate-code#1573 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
AltimateAI/altimate-code#1572 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
AltimateAI/altimate-code#1454 ·
Maintainer antworten meist innerhalb von 1 Tag
-
test: MCP tests fail when the developer's ~/.claude.json has MCP servers (HOME is not sandboxed)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
AltimateAI/altimate-code#1386 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
AltimateAI/altimate-code#1384 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in AltimateAI/altimate-code
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
db-ux-design-system/core-web#8613 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug:new
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
callstackincubator/simlock#934 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
gchq/LD-Explorer#286 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
foxglove/mcap#1907 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag