Apache OpenMeetings 9.1.0 - Alta - Remota - Omisión de 2FA - El inicio de sesión por contraseña SOAP/REST omite TOTP
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-soap-otp-skip
Clase: omisión de 2FA Alcance: Remoto
Apache OpenMeetings 9.1.0. Cuando otp.enabled es true, TOTP se ejecuta solo en Wicket SignInDialog.processOtp. UserWebService.login es contraseña y luego sessionDao.create. SOAP/REST generan un SID sin campo OTP. El valor predeterminado de otp.enabled es false. El laboratorio lo activa.
| ID | aún sin CVE |
| Clase | omisión de 2FA |
| Alcance | Remoto (contraseña, sin OTP) |
| CWE | CWE-287, CWE-304 |
| CVSS | Alto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| Producto | Apache OpenMeetings 9.1.0 con otp.enabled=true |
| Autenticación | contraseña de un usuario inscrito |
| Licencia | GNU Affero GPL v3.0 |
| Laboratorio | solo 127.0.0.1:18157 |
| Método | Sumidero | Privilegio |
|---|---|---|
POST /services/user/login solo usuario/contraseña | UserWebService.login (UserWebService.java:135-143) | Integridad (probado en laboratorio): SID sin OTP. Laboratorio: el guardado de calendario con ese SID almacenó el testigo. |
| Wicket solo contraseña (control) | SignInDialog.processOtp | Cerrado en Wicket: se muestra el desafío OTP, sin panel de control. |
Cerrado: otp.enabled=false predeterminado (este remanente es el despliegue habilitado). Inyección de filtro de búsqueda LDAP (OPENMEETINGS-2808).
cd lab
./run.sh
Última línea: SUCCESS OPENMEETINGS-SOAP-OTP-SKIP-WITNESS
Corrección sugerida: llamar a OtpManager.verify en UserWebService.login y en el inicio de sesión JAX-WS cuando el usuario tenga un secreto TOTP. Fallar de forma segura si OTP está habilitado y la solicitud no tiene código.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
Proveedor: [email protected]