fetch: --allowed-hosts accepts wildcard IP entries (e.g. *.0.0.1) and matches any IPv4 ending with that suffix
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Empieza en src/fetch/src/mcp_server_fetch/allowlist.py y lee normalize_allowed_host y host_is_allowed, que el issue identifica como los puntos de entrada afectados. Revisa las pruebas existentes para la normalización y la coincidencia de hosts permitidos y añade cobertura para literales IP con comodines, sufijos numéricos y hosts con direcciones IP. El objetivo se cumple cuando esas entradas se rechazan o nunca coinciden con literales IP, mientras los comodines de subdominios de nombres de host siguen funcionando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- TypeScript
- Estrellas
- 91.9k
- Forks
- 11.9k
- Merge medio
- 3 h 10 min
- PR fusionados (30 d)
- 178
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de modelcontextprotocol/servers
-
bug server-sequentialthinking v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
modelcontextprotocol/servers#5526 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
fix(docker): correct stale --db-path comments in fetch/git Dockerfiles and clarify git READMEPosiblemente ocupada @cliffhall la tomó hoy. Abiertodocumentation server-fetch server-git v2
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
modelcontextprotocol/servers#5483 · 4 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
chore v2
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
modelcontextprotocol/servers#5527 ·
Los mantenedores suelen responder en 1 día
-
enhancement server-memory v2
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
modelcontextprotocol/servers#5525 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
everything: README description of `get-env` masking omits the whole-segment rule — `APIKEY` / `MYKEY` are not maskedPosiblemente ocupada @cliffhall la tomó hoy. Abiertodocumentation server-everything v2
modelcontextprotocol/servers#5524 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de modelcontextprotocol/servers
Issues similares
-
maintenance
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
assistant-ui/assistant-ui#10499 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
app-server bug CLI
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
cimd: default originBoundFields rejects a cross-origin client_uri, which the CIMD draft forbidsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
better-auth/better-auth#12458 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
ログイン中の404画面にヘッダーとナビを出すAbiertoCodex使用可 コード
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ryuki-moro/Nicomaru#218 ·
Los mantenedores suelen responder en 3 días