Descripción
fastapi-code-generator crea aplicaciones FastAPI a partir de archivos OpenAPI. En versiones anteriores a la 0.8.1, el generador inserta Operation.summary en el docstring de un manejador de ruta generado como una cadena entre triples comillas dobles, sin escapar las triples comillas incrustadas. Un resumen de operación controlado o influenciado por un atacante puede cerrar el docstring e inyectar una sentencia de expresión Python válida en el cuerpo del manejador. Una entrada que rompa la sintaxis solo provoca que la generación falle, pero el código generado sintácticamente válido se ejecuta con los privilegios del proceso del servidor cuando se llama al manejador de ruta afectado. Este punto de inyección en el docstring del manejador de ruta, evaluado al momento de la llamada, es distinto de los puntos de inyección separados del proyecto en la ruta, evaluada al importar, y en las claves de respuestas adicionales. Este problema está corregido en la versión 0.8.1.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- fastapi-code-generator Afectadas: < 0.8.1
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en github.comgithub.com/koxudaxi/fastapi-code-generator/security/advisories/GHSA-h…
- Referencia en github.comgithub.com/koxudaxi/fastapi-code-generator/commit/49301dbdb82170d7f50…
- Referencia en github.comgithub.com/koxudaxi/fastapi-code-generator/commit/b3b9bd66e0b0c4d8c68…
- Referencia en github.comgithub.com/koxudaxi/fastapi-code-generator/releases/tag/0.8.1
Ver el texto original en inglés (CVE.org)
fastapi-code-generator: Call-time RCE via operation summary -> unescaped route-handler docstring
fastapi-code-generator creates FastAPI applications from OpenAPI files. Prior to 0.8.1, the generator inserts Operation.summary into a generated route-handler docstring as a triple-double-quoted string without escaping embedded triple quotes. An attacker-controlled or attacker-influenced operation summary can close the docstring and inject a valid Python expression statement into the handler body. Syntax-breaking input only causes generation to fail, but syntactically valid generated code executes with the server process's privileges when the affected route handler is called. This call-time route-handler docstring sink is distinct from the project's separate import-time route-path and additional-response-key sinks. This issue is fixed in version 0.8.1.