
CVE-2026-39031 — recupero offline della password in chiaro per Lansweeper lsrunase 2.0 / lsencrypt 2.0 tramite una chiave RC4 hardcoded. PoC + advisory tecnico.
Lansweeper lsrunase 2.0 e lsencrypt 2.0 utilizzano uno schema di cifratura delle password reversibile basato su RC4. La chiave RC4 è derivata da un prefisso di 8 caratteri che viene memorizzato in chiaro insieme alla password cifrata e a materiale chiave fisso incorporato nei binari.
Chiunque disponga di una stringa di password cifrata prodotta da uno dei due strumenti può recuperare la password in chiaro offline. Il processo di recupero non richiede forza bruta: basta separare il prefisso in chiaro dal valore cifrato, ricostruire il buffer della chiave, calcolare un digest SHA-1 e decifrare un singolo ciphertext RC4.
A questo problema è stato assegnato CVE-2026-39031. I record pubblici CVE e NVD potrebbero non comparire finché la divulgazione non viene pubblicata e la propagazione dei record non viene completata.
| Prodotto | Versione interessata |
|---|---|
Lansweeper lsrunase | 2.0 |
Lansweeper lsencrypt | 2.0 |
Il componente interessato è la routine di cifratura delle password utilizzata da lsrunase.exe 2.0 e lsencrypt.exe 2.0.
Non si tratta del vecchio problema LSrunasE / Supercrypt tracciato come CVE-2007-6340. Quel vecchio CVE riguardava Geert Moernaut LSrunasE 1.0 e Supercrypt 1.0.
CVE-2026-39031 copre specificamente Lansweeper lsrunase 2.0 e lsencrypt 2.0. La costruzione vulnerabile è diversa: questi binari derivano la chiave RC4 da un prefisso in chiaro di 8 caratteri più un suffisso fisso di 142 byte incorporato nei binari.
Un valore di password cifrata è costruito come:
8-character prefix || base64(RC4(plaintext password))
Il processo di cifratura è:
0x3f a 0x7e.SHA1(key_buffer) per produrre la chiave RC4 di 20 byte.Il suffisso fisso di 142 byte è:
0x27 0x0F 0x29 0x11 0x2B 0x13 0x2D 0x15
0x2F 0x17 0x31 0x19 0x33 0x1B 0x35 0x1D
0x37 0x1F 0x39 0x21 0x3B 0x23 0x3D 0x25
0x3F 0x27 0x41 0x29 0x43 0x2B 0x45 0x2D
0x47 0x2F 0x49 0x31 0x4B 0x33 0x4D 0x35
0x4F 0x37 0x51 0x39 0x53 0x3B 0x55 0x3D
0x57 0x3F 0x59 0x41 0x5B 0x43 0x5D 0x45
0x5F 0x47 0x61 0x49 0x63 0x4B 0x65 0x4D
0x67 0x4F 0x69 0x51 0x6B 0x53 0x6D 0x55
0x6F 0x57 0x71 0x59 0x73 0x5B 0x75 0x5D
0x77 0x5F 0x79 0x61 0x7B 0x63 0x7D 0x65
0x7F 0x67 0x81 0x69 0x83 0x6B 0x85 0x6D
0x87 0x6F 0x89 0x71 0x8B 0x73 0x8D 0x75
0x8F 0x77 0x91 0x79 0x93 0x7B 0x95 0x7D
0x97 0x7F 0x99 0x81 0x9B 0x83 0x9D 0x85
0x9F 0x87 0xA1 0x89 0xA3 0x8B 0xA5 0x8D
0xA7 0x8F 0xA9 0x91 0xAB 0x93 0xAD 0x95
0xAF 0x97 0xB1 0x99 0xB3 0x9B
Poiché il prefisso è memorizzato in chiaro e il restante materiale chiave è fisso tra le installazioni, tutte le informazioni necessarie per derivare la chiave RC4 sono disponibili a un attaccante che disponga di una stringa di password cifrata e di una copia del binario o di questa analisi.
Lo script di prova di concetto non ha dipendenze di terze parti e funziona con Python 3.
$ python lsrunase2cve.py --decrypt "IssS|CI|NTOEHK5Q9l7Sn89xEA67+wo="
Decrypted: testpassword12345
Il valore cifrato qui sopra è stato generato dalla GUI LSrunasE 2.0 password encrypter 2.0 per il valore in chiaro testpassword12345.
Per una verifica di cifratura riproducibile utilizzando lo stesso prefisso:
$ python lsrunase2cve.py --encrypt "testpassword12345" --prefix "IssS|CI|"
Encrypted: IssS|CI|NTOEHK5Q9l7Sn89xEA67+wo=
Un attaccante con accesso locale a un valore di password cifrata prodotto da lsrunase 2.0 o lsencrypt 2.0 può recuperare offline la password in chiaro.
A seconda di come gli strumenti vengono distribuiti, le credenziali recuperate possono consentire:
Il problema è causato da diversi difetti di progettazione crittografica nello schema di protezione delle password:
Le categorie di debolezza pertinenti includono:
CWE-321: Uso di chiave crittografica hard-codedCWE-326: Forza di cifratura inadeguataCWE-327: Uso di un algoritmo crittografico non sicuro o rischioso| Data | Evento |
|---|---|
| 2026-03-13 | Fornitore notificato tramite [email protected] con una tempistica di divulgazione coordinata di 90 giorni e una finestra di 14 giorni per la richiesta di assegnazione CVE. |
| 2026-03-31 | Il fornitore ha risposto che il prodotto non è più mantenuto. Non è stata fornita alcuna conferma tecnica. |
CWE-321: https://cwe.mitre.org/data/definitions/321.htmlCWE-326: https://cwe.mitre.org/data/definitions/326.htmlCWE-327: https://cwe.mitre.org/data/definitions/327.htmlCVE-2007-6340: https://nvd.nist.gov/vuln/detail/CVE-2007-6340| 2026-06-08 | MITRE ha assegnato CVE-2026-39031. |