
Apache OpenMeetings 9.1.0 - Alta - Remoto - Ignorar 2FA - Login por senha via SOAP/REST ignora TOTP
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-soap-otp-skip
Classe: contorno de 2FA Alcance: Remoto
Apache OpenMeetings 9.1.0. Quando otp.enabled é verdadeiro, o TOTP é executado apenas no Wicket SignInDialog.processOtp. UserWebService.login é senha e depois sessionDao.create. SOAP/REST geram um SID sem campo de OTP. O padrão de otp.enabled é falso. O laboratório o ativa.
| ID | ainda sem CVE |
| Classe | contorno de 2FA |
| Alcance | Remoto (senha, sem 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 |
| Produto | Apache OpenMeetings 9.1.0 com otp.enabled=true |
| Autenticação | senha de um usuário inscrito |
| Licença | GNU Affero GPL v3.0 |
| Laboratório | somente 127.0.0.1:18157 |
| Método | Destino | Privilégio |
|---|---|---|
POST /services/user/login somente usuário/senha | UserWebService.login (UserWebService.java:135-143) | Integridade (comprovada em laboratório): SID sem OTP. Laboratório: salvamento de calendário com esse SID armazenou a testemunha. |
| Wicket somente senha (controle) | SignInDialog.processOtp | Fechado no Wicket: desafio de OTP exibido, sem painel. |
Fechado: padrão otp.enabled=false (este resquício é a implantação habilitada). Injeção de filtro de busca LDAP (OPENMEETINGS-2808).
cd lab
./run.sh
Última linha: SUCCESS OPENMEETINGS-SOAP-OTP-SKIP-WITNESS
Correção sugerida: chamar OtpManager.verify em UserWebService.login e no login JAX-WS quando o usuário tiver um segredo TOTP. Falhar de forma segura se o OTP estiver habilitado e a requisição não tiver código.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
Vendor: [email protected]