
Laboratorio de investigación en seguridad: reproducción de CVE-2025-61584 (GHSA-9g7x-737f-5xpc) — inyección de comandos a través de github.head_ref en el flujo de trabajo pull_request_target (.github/workflows/pr.yml)
Artefacto de investigación automatizado — no es el proyecto original.
Este repositorio es un laboratorio desechable construido por un sistema automatizado para una tesis de maestría en Université Laval sobre la reproducción de vulnerabilidades publicadas en flujos de trabajo de GitHub Actions. Es una instantánea verbatim de
serverless-dns/serverless-dnsen el commitb0b1a1538aeb1991b5bc13dfe4e18e686913b12e(2025-04-26), redistribuida bajo la licencia de ese proyecto, cuyo archivo se incluye sin cambios en esta instantánea.El proyecto original no está involucrado, nunca es el objetivo, y la vulnerabilidad estudiada aquí ya es pública. Cada secreto y variable en este repositorio es un valor ficticio generado aleatoriamente — no hay ninguna credencial real presente. Las referencias de acciones y las imágenes de ejecutores están fijadas a lo que resolvieron el 2025-04-26; consulte
pinning.mden la salida del sistema para cada cambio realizado en la instantánea.Preguntas u objeciones: [email protected]
serverless-dns es un resolutor DNS-over-HTTPS (DoH) y DNS-over-TLS (DoT) stub, serverless y de bloqueo de contenido estilo Pi-Hole. Funciona listo para usar en Cloudflare Workers, Deno Deploy, Fastly Compute@Edge y Fly.io. Los niveles gratuitos de todos estos servicios deberían ser suficientes para cubrir el tráfico DNS de 10 a 20 dispositivos al mes.
RethinkDNS ejecuta serverless-dns en producción en estos endpoints:
| Plataforma en la nube | Ubicaciones de servidores | Protocolo | Dominio | Uso |
|---|---|---|---|---|
| ⛅ Cloudflare Workers | 280+ (ping) | DoH | sky.rethinkdns.com | configurar |
| 🦕 Deno Deploy | 30+ (ping) | DoH | beta privada | |
| ⏱️ Fastly Compute@Edge | 80+ (ping) | DoH | beta privada | |
| 🪂 Fly.io | 30+ (ping) | DoH y DoT | max.rethinkdns.com | configurar |
El procesamiento del lado del servidor toma de 0 milisegundos (ms) a 2ms (mediana), y la latencia de extremo a extremo (varía según las regiones y redes) está entre 10ms y 30ms (mediana).
El resolutor Rethink DNS en Fly.io está patrocinado por FOSS United.
Cloudflare Workers es la plataforma más fácil para configurar serverless-dns:
Para instrucciones paso a paso, consulte:
| Plataforma | Dificultad | Runtime | Documentación |
|---|---|---|---|
| ⛅ Cloudflare | Fácil | v8 Isolates | Alojamiento en Cloudflare Workers |
| 🦕 Deno.com | Moderada | Deno Isolates | Alojamiento en Deno.com |
| ⏱️ Fastly Compute@Edge | Fácil | Fastly JS | Alojamiento en Fastly Compute@Edge |
| 🪂 Fly.io | Difícil | Node MicroVM | Alojamiento en Fly.io |
Para configurar listas de bloqueo, visite https://<my-domain>.tld/configure desde su navegador (debería cargar algo similar a la página configure de RethinkDNS).
Para ayuda o asistencia, no dude en abrir un issue o enviar un parche.
Código:
# navegar al directorio de trabajo
cd /my/work/dir
# clonar este repositorio
git clone https://github.com/serverless-dns/serverless-dns.git
# navegar a serverless-dns
cd ./serverless-dns
Node:
# instalar node v22+ mediante nvm, si es necesario
# https://github.com/nvm-sh/nvm#installing-and-updating
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install --lts
# descargar dependencias
npm i
# (opcional) actualizar dependencias
npm update
# ejecutar serverless-dns en node
./run n
# ejecutar un perfilador clinicjs.org
./run n [cpu|fn|mem]
Deno:
# instalar deno.land v2+
# https://github.com/denoland/deno/#install
curl -fsSL https://deno.land/install.sh | sh
# ejecutar serverless-dns en deno
./run d
Fastly:
# instalar node v22+ mediante nvm, si es necesario
# instalar la CLI de Fastly
# https://developer.fastly.com/learning/tools/cli
# ejecutar serverless-dns en Fastly Compute@Edge
./run f
Wrangler:
# instalar Cloudflare Workers (cli) también conocido como Wrangler
# https://developers.cloudflare.com/workers/cli-wrangler/install-update
npm i wrangler --save-dev
# ejecutar serverless-dns en Cloudflare Workers (cli)
# Asegúrese de configurar Wrangler primero:
# https://developers.cloudflare.com/workers/cli-wrangler/authentication
./run w
# perfilar wrangler con Chrome DevTools
# blog.cloudflare.com/profiling-your-workers-with-wrangler
Los commits en este repositorio aplican la guía de estilo JavaScript de Google (ref: .eslintrc.cjs).
Un hook de git pre-commit ejecuta el linter (eslint) y el formateador (prettier) en archivos .js. Use git commit --no-verify
para omitir este hook.
Las pull requests también se verifican por violaciones de estilo de código y se corrigen automáticamente cuando es posible.