Guías

Antes de que tu agente Pydantic-AI descargue otra página, ejecuta esta verificación de contención

Fija la versión corregida de pydantic-ai y ejecuta tres verificaciones de exposición antes de que un agente descargue páginas no confiables.

Illustration: Before Your Pydantic-AI Agent Fetches Another Page, Run This Containment Check

La ruta de descarga es la superficie de contención

Tu agente Pydantic-AI puede descargar una página que no debería leer. Una página maliciosa puede bloquear el worker sin provocar un colapso. Antes de la próxima descarga, fija la versión corregida y ejecuta tres verificaciones de exposición. El prompt puede ser no confiable, el destino hostil, la respuesta grande y la interfaz abierta. Cada ruta necesita una verificación.

La puerta de contención está en el despliegue, no en el prompt. El modelo puede ser seguro y la ruta de descarga puede seguir fallando. Verifica la versión fijada, los puntos de exposición y los límites de tiempo de ejecución. Bloquea un despliegue si falta alguno.

Enumera cada ruta que puede obtener contenido remoto: la herramienta principal de descarga, las descargas de medios, las URLs de archivo y cualquier función auxiliar que abra una conexión de red. Desactiva una ruta si el agente no la necesita. Si es necesaria, ponla detrás de la misma puerta de contención que el tiempo de ejecución del agente.

La presión de memoria es la primera exposición

CVE-2026-107290 es un problema solo de disponibilidad en la herramienta local web-fetch de pydantic-ai. Una respuesta grande puede bloquear el bucle de eventos. El agente parece activo, pero el worker no puede responder. La paralización parece un timeout, no un colapso. Los usuarios ven una respuesta lenta. El operador ve un worker colgado. El daño es operativo, pero es un fallo de seguridad porque una página remota lo provocó.

La forma del fallo es sencilla: el worker retiene demasiados bytes antes de poder rechazarlos. Una página maliciosa puede solicitar suficientes datos para agotar el worker. La corrección debe transmitir en streaming y limitar el cuerpo. La verificación debe demostrar que el límite está activo en la compilación que se distribuye.

CVE-2026-107294 afecta a las versiones de pydantic-ai desde 1.77.0 hasta 1.107.2 y 2.24.0, en las que web_fetch_tool y las descargas de medios remotos FileUrl retienen la respuesta HTTP completa en memoria antes de aplicar los límites de tamaño. Aísla el worker de descarga donde sea posible. Un timeout debe cancelar la solicitud, no a todo el agente. Los límites de concurrencia también importan. Una página problemática no debe bloquear a todos los workers mientras el resto del servicio espera.

La interfaz web es la segunda exposición

Un endpoint de chat puede ser más que una superficie de depuración. Si es accesible, un navegador puede enviar una solicitud que el usuario nunca pretendió hacer. El endpoint de chat de la interfaz web de pydantic-ai tiene una vulnerabilidad CSRF porque el manejador post_chat no requiere una cabecera Content-Type JSON.

La suplantación de solicitudes es relevante porque el agente ya tiene capacidades. Una solicitud de chat falsificada puede desencadenar descargas u otras acciones del agente. La verificación de exposición es sencilla: si la interfaz es pública, el nivel de parche debe cubrirla.

No dejes la interfaz abierta por comodidad. Ponla detrás de autenticación o desactívala en producción. Si la mantienes para depuración, trátala como un endpoint de administración. Debe ser accesible solo desde redes confiables y no debe ser la ruta predeterminada para el tráfico del agente.

Verifica la validación de solicitudes, no solo el inicio de sesión. Un navegador puede ser engañado para enviar una solicitud que parece normal para un manejador débil. La puerta de contención debe confirmar que el endpoint espera el tipo de contenido correcto y rechaza cualquier otro.

Ejecuta la puerta de contención antes de la próxima descarga

Mantén esta lista junto a la lista de verificación del despliegue. Si una falla, detén la ruta de descarga y aplica el parche a la versión fijada.

  • Establece la puerta de versión. CVE-2026-107290 afecta a las versiones de pydantic-ai desde 1.77.0 antes de 1.107.6 y desde 2.0.0-b.1 antes de 2.44.0. Fija las líneas 1.x y 2.x fuera de ese rango.
  • Verifica la exposición de memoria. CVE-2026-107294 se resuelve en pydantic-ai 1.107.2 y 2.24.0.
  • Verifica la exposición de la interfaz web. La corrección para el problema CSRF de la interfaz web de pydantic-ai es actualizar a 1.107.4 o 2.28.0.
  • Verifica la exposición de streaming. Las versiones corregidas de pydantic-ai para GHSA-v2xh-2vp8-57h8 aplican un límite de streaming predeterminado de 50 MiB a las descargas de web-fetch y FileUrl.

La puerta de contención es tan fuerte como la compilación más antigua expuesta. Una versión fijada corregida no es suficiente si otro tiempo de ejecución sigue usando una copia más antigua. Inventario cada tiempo de ejecución y archivo de dependencias que pueda acceder a las mismas herramientas.

Haz que la puerta de contención sea parte del despliegue, no una nota manual. La verificación del despliegue debe fallar si la versión fijada está por debajo de la puerta. La misma verificación debe ejecutarse en un entorno de pruebas, donde los prompts no confiables son más fáciles de probar. Ejecútala antes de cada despliegue y antes de cada prompt que pueda acceder a la herramienta de descarga.

Publicidad