Lansweeper lsrunase 2.0 / lsencrypt 2.0 — RC4 Password Recovery (CVE-2026-39031)
by user6400 · 2026-07-05
- Severity
- High
- CVE
- CVE-2026-39031
- Category
- crypto
- Affected product
- Lansweeper lsrunase 2.0 / lsencrypt 2.0
- Affected versions
- 2.0 (both tools)
- Disclosed
- 2026-07-05
- Patch status
- unpatched
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-06 |
| Author / Researcher | user6400 |
| CVE / Advisory | CVE-2026-39031 |
| Category | crypto |
| Severity | High |
| CVSS Score | Not specified in source |
| Status | Weaponized |
| Tags | lansweeper, rc4, hardcoded-key, password-recovery, cryptography, offline-decryption, cwe-321 |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Lansweeper lsrunase 2.0 / lsencrypt 2.0 |
| Versions Affected | 2.0 (both tools) |
| Language / Platform | Python (PoC), targeting a Windows binary encryption scheme |
| Authentication Required | Local-only (attacker needs an encrypted password string) |
| Network Access Required | No |
Summary
Lansweeper’s lsrunase and lsencrypt 2.0 tools implement a reversible password “encryption” scheme built on RC4 with a key derived from an 8-character cleartext prefix (stored alongside the ciphertext) concatenated with a fixed 142-byte suffix hardcoded into both binaries. Because the prefix travels in the clear and the remaining key material never changes across installations, anyone who obtains an encrypted password string can recover the original plaintext offline with a single SHA-1 computation and one RC4 decryption — no brute force required. This is a distinct issue from the older CVE-2007-6340 (LSrunasE/Supercrypt 1.0).
Vulnerability Details
Root Cause
The RC4 key is SHA1(8-byte cleartext prefix || fixed 142-byte suffix embedded in the binary); since the prefix is stored unencrypted with the ciphertext and the suffix is a hardcoded constant, the full key is always derivable from the encrypted value alone (CWE-321, CWE-326, CWE-327).
Attack Vector
- Obtain an encrypted password string produced by
lsrunase.exe2.0 orlsencrypt.exe2.0 (e.g. from configuration files, scripts, or backups). - Split the leading 8-character cleartext prefix from the base64-encoded RC4 ciphertext that follows it.
- Rebuild the 150-byte key buffer from the prefix and the fixed 142-byte suffix, and compute its SHA-1 digest to obtain the RC4 key.
- Decrypt the RC4 ciphertext to recover the plaintext password.
Impact
Offline recovery of plaintext credentials from any captured or archived lsrunase/lsencrypt 2.0 encrypted password string, enabling privilege escalation, lateral movement, and retroactive decryption of previously stored secrets.
Environment / Lab Setup
Target: Encrypted password strings produced by lsrunase 2.0 / lsencrypt 2.0
Attacker: python3 (no third-party dependencies)
Proof of Concept
PoC Script
See
lsrunase2cve.pyin this folder.
| |
The script splits the cleartext prefix from the supplied encrypted string, rebuilds the RC4 key via the fixed 142-byte suffix and a single SHA-1 pass, and decrypts (or, given --encrypt, reproduces) the password.
Detection & Indicators of Compromise
<8-char-prefix><base64 ciphertext>
Signs of compromise:
- Encrypted password strings from
lsrunase/lsencrypt2.0 found in exposed scripts, backups, or version control - Use of recovered credentials for subsequent authentication attempts against Lansweeper-managed systems
Remediation
| Action | Detail |
|---|---|
| Primary fix | No vendor patch confirmed — vendor stated the product line is no longer maintained; migrate off lsrunase/lsencrypt 2.0 |
| Interim mitigation | Rotate any credentials ever stored via lsrunase/lsencrypt 2.0; avoid embedding encrypted credentials from these tools in scripts or backups |
References
Notes
Mirrored from https://github.com/user6400/cve-2026-39031-lansweeper-lsrunase2-lsencrypt2 on 2026-07-05.
| |