security(server): /api/tunnels/check-availability 是唯一未认证的隧道存在性 oracle——可匿名枚举全部隧道名单
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 80/100
Línea de trabajo
Lee python/tunely/server.py:1336-1342, donde check_availability se declara sin un argumento api key, y compáralo con los admin endpoints protegidos en :1320-1432 para ver el patrón _check_admin_api_key que comparten; la lógica que filtra es _check_availability en :1563-1591, que devuelve "Domain already exists". Protege la ruta de la misma manera y comprueba si la llamada de precheck del frontend necesita moverse a la ruta de conflicto de creación (409). Terminado cuando una llamada anónima a /api/tunnels/check-availability sea rechazada y el frontend siga resolviendo los conflictos de creación correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:无
基线 HEAD = 020dec3。
Summary
python/tunely/server.py:1336-1342:路由签名async def check_availability(name: str)没有 api key 参数、不调用_check_admin_api_key,直接返回available/reason;同文件其余管理端点全部带 key(:1320-1432)。(已亲读确认。)_check_availability(:1563-1591)对已存在域名返回"reason": "Domain already exists"——即匿名者可用它爆破(dsh/plait/gz 等前缀)枚举全部已存在隧道。
影响
PROBE_HARDENING 专门把 /health 的隧道计数摘掉(T3:活跃隧道数是 oracle),这条端点把整份名单留成匿名可枚举,为针对性攻击/社工提供目标;也是唯一匿名触达 DB 的端点(可当低成本 DB 探测器)。
建议
与 /api/tunnels 同门控(_check_admin_api_key);确需公开则改常量响应(前端预检改由创建冲突时 409 承担)。
- Lenguaje dominante
- Python
- Estrellas
- 0
- Forks
- 0
- Merge medio
- 1 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin 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 jeffkit/tunely
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
fix(release): 发布链 fail-open(缺 secret 时 Actions 绿但什么都没发)+ PyPI 上的 0.10.0 恰是 /forward 无鉴权的安全缺口版本Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 34/100
Todos los issues de jeffkit/tunely
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
its-me-prash/vwgroup-connect-ha#2019 ·
Los mantenedores suelen responder en 1 día
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
KonstantinStarovoytov/kitden#21 ·
Los mantenedores suelen responder en 1 día
-
RefactorAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ehmatthes/gh-profiler#166 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
smart-on-fhir/smart-fetch#73 ·
-
good first issue help wanted
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
RizgarOzan/playcal#13 ·