KamoCRM

Tamaño de carga y conversiones simultáneas en los endpoints de tuberías no autenticticos

FixVectorService
Se descapó
23 de septiembre de 2026 a las 2:28 UTC
Autor
Kamo
Compromit
4820f44

POST /convert-vector y WS /ws/pipeline no toman auth (ver el informe acompañante de este commit para por qué que no se arregla aquí) y, hasta ahora, leer toda una llamada carga en la memoria antes de mirar su tamaño en todos los ajustes se definió en la configuración y nunca se refirió a ninguna parte. O bien endpoint también corrió la eliminación de antecedentes y la vectorización (rembg, vtracer y ambos CPU-bound, a través de asyncio.tothread) sin tope en cuántos podrían correr a la vez. Juntos que es una puerta abierta a ejecutar esta vaina fuera de memoria o CPU con un púmulo de peticiones simultáneas, de cualquiera que pueda llegar a él y por **************** que es cualquier navegador en Internet: Rutas de Traefik /vector-ws/* directamente a este servicio, eludiendo la puerta de entrada de apiservice por completo. - /Convert-vector ahora lee la subida en trozos y se niega (413) tan pronto como se ejecuta cruces totales max.image.size-mb, en lugar de amortiguar todo el asunto. - El oleoducto WebSocket no tiene equivalente a una lectura desprendida. marco decodificado completo para el momento en que se ve, por lo que el mismo límite se comprueba inmediatamente después base64-codificando una imagen/máscara entrante, antes de que se entregue a bg eliminación o vectorización. - Una nueva conversión.semaphore (max-concurrent-conversions, predeterminado 4, en la configuración/configmap como Max.image.size.mb ya estaba envuelve cada llamada de extirpación y vectorización en ambos endpoints. Los excitadores esperan; no se les rechaza. Pruebas: test.resource.limits.py (pytest . httpx only . the heavy ML/CV deps in requirements.txt son todos los cuerpos de función imeramente importados dentro/*.py, nunca en la carga del módulo, por lo que los dos Los puntos de entrada de conversión se burlan en lugar de instalados). No dirigido por CI hoy; esta construcción no tiene ninguna (construir-and-deploy.yml va directamente de la compra a la construcción de mucker/empujón/despleto). Cada guardia estaba Rojo verificado primero: la tapa de tamaño removida (una carga de gran tamaño llega al convertidor burlado en su lugar de ser rechazado) y el control de tamaño WebSocket desactivado, en un árbol de trabajo local, restaurado después.

Todos los cambios

Como lo que ves enviaste?

Todo llega a su espacio de trabajo por sí solo. Comience en el plan gratuito y lea esta página de nuevo en un mes.

Arranzar gratis para siempreVer Precios