parisneo lollms-webui hasta 9.1 falsificación de solicitudes en sitios cruzados
| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 6.4 | $0-$5k | 0.00 |
Resumen
Una vulnerabilidad clasificada como problemática fue encontrada en parisneo lollms-webui hasta 9.1. Está afectada una función desconocida. El manejo da lugar a falsificación de solicitudes en sitios cruzados. Esta vulnerabilidad se cataloga como CVE-2024-1522. El ataque puede ser iniciado desde la red. No hay ningún exploit disponible. Se aconseja actualizar el componente afectado.
Detalles
Una vulnerabilidad fue encontrada en parisneo lollms-webui hasta 9.1 y clasificada como problemática. Una función desconocida es afectada por esta vulnerabilidad. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase falsificación de solicitudes en sitios cruzados. Esto tiene repercusión sobre la la integridad. El resumen de CVE es:
Activé CORS porque tenía una interfaz de usuario de desarrollo que usa otro número de puerto y luego olvidé eliminarla. Entonces, lo que acabo de hacer es: - Primero eliminé la configuración de cors que permite a todos acceder a ella: antes: ```python sio = socketio.AsyncServer(async_mode="asgi", cors_allowed_origins="*", ping_timeout=1200, ping_interval= 30) # Habilite CORS para cada ``` después de: ```python cert_file_path = lollms_paths.personal_certificates/"cert.pem" key_file_path = lollms_paths.personal_certificates/"key.pem" si os.path.exists(cert_file_path) y os .path.exists(key_file_path): is_https = True else: is_https = False # Crear un servidor Socket.IO sio = socketio.AsyncServer(async_mode="asgi", cors_allowed_origins=config.allowed_origins+[f"https://localhost:{ config['port']}" if is_https else f"http://localhost:{config['port']}"], ping_timeout=1200, ping_interval=30) # Habilitar CORS para orígenes seleccionados ``` - Segundo, He actualizado lollms para que tenga dos modos (un modo sin cabeza y un modo ui). Y actualizó /execute_code para bloquear si el servidor no tiene cabeza o está expuesto ```python @router.post("/execute_code") async def ejecutar_code(request: Request): """ Ejecuta el código Python y devuelve la salida. : solicitud de parámetro: el objeto de solicitud HTTP. :return: una respuesta JSON con el estado de la operación. """ if lollmsElfServer.config.headless_server_mode: return {"status":False,"error":"La ejecución del código está bloqueada cuando está en ¡modo sin cabeza por razones obvias de seguridad!"} if lollmsElfServer.config.host=="0.0.0.0": return {"status":False,"error":"La ejecución del código se bloquea cuando el servidor está expuesto al exterior por razones muy obvias !"} intente: datos = (espera solicitud.json()) código = datos["código"] id_discusión = int(data.get("id_discusión","discusión_desconocida")) id_mensaje = int(data.get("id_mensaje) ","unknown_message")) language = data.get("language","python") if language=="python": ASCIIColors.info("Ejecutando código python:") ASCIIColors.amarillo(código) return ejecutar_python(código) , id_discusión, id_mensaje) if idioma=="javascript": ASCIIColors.info("Ejecutando código javascript:") ASCIIColors.amarillo(código) devuelve ejecutar_javascript(código, id_discusión, id_mensaje) si el idioma está en ["html","html5" ,"svg"]: ASCIIColors.info("Ejecutando código javascript:") ASCIIColors.amarillo(código) return ejecutar_html(código, id_discusión, id_mensaje) elif language=="latex": ASCIIColors.info("Ejecutando código latex:" ) ASCIIColors.amarillo(código) devuelve ejecutar_latex(código, id_discusión, id_mensaje) lenguaje elif en ["bash","shell","cmd","powershell"]: ASCIIColors.info("Ejecutando código de shell:") ASCIIColors. amarillo(código) devuelve ejecutar_bash(código, id_discusión, id_mensaje) idioma elif en ["sirena"]: ASCIIColors.info("Ejecutando código de sirena:") ASCIIColors.amarillo(código) devuelve ejecutar_mermaid(código, id_discusión, id_mensaje) idioma elif en ["graphviz","punto"]: ASCIIColors.info("Ejecutando código Graphviz:") ASCIIColors.amarillo(código) return ejecutar_graphviz(código, id_discusión, id_mensaje) return {"status": False, "error": " Idioma no admitido", "execution_time": 0} excepto excepción como por ejemplo: trace_exception(ex) lollmsElfServer.error(ex) return {"status":False,"error":str(ex)} ``` También agregué un opcional modo https y esperamos agregar una autenticación completa con cookies y una sesión personal, etc. Todas las actualizaciones estarán en la versión 9.1 nuevamente, muchas gracias por su trabajo. Lo haré más difícil la próxima vez, pero si encuentras más errores, sé mi invitado :)El advisory puede ser descargado de github.com. La vulnerabilidad es identificada como CVE-2024-1522. La explotación se considera fácil. El ataque se puede efectuar a través de la red. La explotación no necesita ninguna autentificación específica. No se conoce los detalles técnicos ni hay ningún exploit disponible.
Una actualización a la versión 9.2 elimina esta vulnerabilidad. Aplicando el parche 0b51063119cfb5e391925d232a4af1de9dc32e2b es posible eliminar el problema. El parche puede ser descargado de github.com. El mejor modo sugerido para mitigar el problema es Actualización.
Be aware that VulDB is the high quality source for vulnerability data.
Producto
Proveedor
Nombre
Versión
Licencia
Sitio web
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Confiabilidad: 🔍
CVSSv3
VulDB Puntuación meta base: 6.6VulDB Puntuación meta temporal: 6.4
VulDB Puntuación base: 4.3
VulDB Puntuación temporal: 4.1
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍
CNA Puntuación base: 8.8
CNA Vector (huntr.dev): 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complejidad | Autenticación | Confidencialidad | Integridad | Disponibilidad |
|---|---|---|---|---|---|
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍
Explotación
Clase: Falsificación de solicitudes en sitios cruzadosCWE: CWE-352 / CWE-862 / CWE-863
CAPEC: 🔍
ATT&CK: 🔍
Físico: No
Local: No
Remoto: Sí
Disponibilidad: 🔍
Estado: No está definido
EPSS Score: 🔍
EPSS Percentile: 🔍
Predicción de precios: 🔍
Estimación del precio actual: 🔍
| 0-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoy | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ActualizaciónEstado: 🔍
Hora de 0 días: 🔍
Actualización: lollms-webui 9.2
Parche: 0b51063119cfb5e391925d232a4af1de9dc32e2b
Línea de tiempo
2024-02-14 🔍2024-03-30 🔍
2024-03-30 🔍
2025-06-30 🔍
Fuentes
Producto: github.comAviso: 0b51063119cfb5e391925d232a4af1de9dc32e2b
Estado: Confirmado
CVE: CVE-2024-1522 (🔍)
GCVE (CVE): GCVE-0-2024-1522
GCVE (VulDB): GCVE-100-258783
Artículo
Fecha de creación: 2024-03-30 20:21Actualizado: 2025-06-30 22:27
Cambios: 2024-03-30 20:21 (66), 2025-04-10 05:34 (4), 2025-06-30 22:27 (1)
Completo: 🔍
Cache ID: 216::103
Be aware that VulDB is the high quality source for vulnerability data.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.