fetch: --allowed-hosts accepts wildcard IP entries (e.g. *.0.0.1) and matches any IPv4 ending with that suffix
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
Direzione di ricerca
Inizia da src/fetch/src/mcp_server_fetch/allowlist.py e leggi normalize_allowed_host e host_is_allowed, che l’issue identifica come punti di ingresso interessati. Controlla i test esistenti per la normalizzazione e la corrispondenza degli host consentiti, quindi aggiungi test per i valori letterali IP con caratteri jolly, i suffissi numerici e gli host con indirizzi IP. Il lavoro è completato quando questi input vengono rifiutati o non corrispondono mai a valori letterali IP, mentre i caratteri jolly per i sottodomini dei nomi host continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
mcp-server-fetch's --allowed-hosts allowlist (src/fetch/src/mcp_server_fetch/allowlist.py) documents two valid entry forms:
Two entry forms only, to keep the semantics obvious: an exact host (a name or an IP literal), and
*.example.com, which matches any subdomain at any depth of example.com...
However, normalize_allowed_host only checks ipaddress.ip_address(...) when not wildcard (line 37). When a wildcard prefix *. is given before an IP literal or numeric IP suffix (such as *.10.0.0.1 or *.0.0.1), httpx.URL(f"http://{name}/") parses name without error and returns *.10.0.0.1 / *.0.0.1.
Then in host_is_allowed(host, allowed_hosts), host.endswith(entry[1:]) matches any IPv4 literal ending with .0.0.1 (for example, *.0.0.1 matches both 10.0.0.1 and 127.0.0.1).
from mcp_server_fetch.allowlist import host_is_allowed, normalize_allowed_hosts
entries = normalize_allowed_hosts(["*.0.0.1"]) # returns ('*.0.0.1',)
assert host_is_allowed("127.0.0.1", entries) is True
assert host_is_allowed("10.0.0.1", entries) is True
Expected
normalize_allowed_hostrejects wildcard IP literals and numeric-TLD wildcard suffixes (*.10.0.0.1,*.0.0.1,*.[::1]) withValueError.host_is_alloweddoes not match*.subdomain wildcards against IP address literals.
- Lingua principale
- TypeScript
- Stelle
- 91.9k
- Fork
- 11.9k
- Merge medio
- 3h 10m
- PR unite (30g)
- 178
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 modelcontextprotocol/servers
-
bug server-sequentialthinking v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
modelcontextprotocol/servers#5526 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
fix(docker): correct stale --db-path comments in fetch/git Dockerfiles and clarify git READMEForse già presa @cliffhall l’ha presa oggi. Apertadocumentation server-fetch server-git v2
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
modelcontextprotocol/servers#5483 · 4 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
chore v2
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
modelcontextprotocol/servers#5527 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement server-memory v2
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
modelcontextprotocol/servers#5525 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
everything: README description of `get-env` masking omits the whole-segment rule — `APIKEY` / `MYKEY` are not maskedForse già presa @cliffhall l’ha presa oggi. Apertadocumentation server-everything v2
modelcontextprotocol/servers#5524 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di modelcontextprotocol/servers
Issue simili
-
maintenance
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
assistant-ui/assistant-ui#10499 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
app-server bug CLI
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
cimd: default originBoundFields rejects a cross-origin client_uri, which the CIMD draft forbidsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
better-auth/better-auth#12458 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
ログイン中の404画面にヘッダーとナビを出すApertaCodex使用可 コード
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ryuki-moro/Nicomaru#218 ·
I maintainer di solito rispondono entro 3 giorni