
Apache OpenMeetings 9.1.0 - Alta - Remoto - Salto del 2FA - Il login con password via SOAP/REST salta il TOTP
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-soap-otp-skip
Classe: bypass 2FA Portata: Remota
Apache OpenMeetings 9.1.0. Quando otp.enabled è true, il TOTP viene eseguito solo in Wicket SignInDialog.processOtp. UserWebService.login esegue prima la password poi sessionDao.create. SOAP/REST generano un SID senza alcun campo OTP. Il valore predefinito di otp.enabled è false. Il lab lo abilita.
| ID | nessuna CVE al momento |
| Classe | bypass 2FA |
| Portata | Remota (password, senza OTP) |
| CWE | CWE-287, CWE-304 |
| CVSS | Alta: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| Prodotto | Apache OpenMeetings 9.1.0 con otp.enabled=true |
| Autenticazione | password di un utente registrato |
| Licenza | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1:18157 |
| Metodo | Sink | Privilegio |
|---|---|---|
POST /services/user/login solo utente/password | UserWebService.login (UserWebService.java:135-143) | Integrità (dimostrata nel lab): SID senza OTP. Lab: salvataggio in calendario con quel SID ha memorizzato il witness. |
| Wicket solo password (controllo) | SignInDialog.processOtp | Chiuso su Wicket: viene mostrata la richiesta OTP, nessuna dashboard. |
Chiuso: valore predefinito otp.enabled=false (questo residuo è la distribuzione con l'opzione abilitata). Iniezione nel filtro di ricerca LDAP (OPENMEETINGS-2808).
cd lab
./run.sh
Ultima riga: SUCCESS OPENMEETINGS-SOAP-OTP-SKIP-WITNESS
Correzione suggerita: chiamare OtpManager.verify in UserWebService.login e nel login JAX-WS quando l'utente ha un segreto TOTP. Fallire in modo sicuro se l'OTP è abilitato e la richiesta non contiene alcun codice.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
Fornitore: [email protected]