{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-30796", "assignerOrgId": "2fdefc65-d750-4b8d-96ee-6e2c0c42dbfe", "state": "PUBLISHED", "assignerShortName": "VULSec", "dateReserved": "2026-03-05T14:13:37.203Z", "datePublished": "2026-03-05T15:30:39.605Z", "dateUpdated": "2026-07-19T11:54:37.867Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "2fdefc65-d750-4b8d-96ee-6e2c0c42dbfe", "shortName": "VULSec", "dateUpdated": "2026-07-19T11:54:37.867Z" }, "title": "RustDesk Client Transmits Preset Address Book Password Verbatim in Heartbeat Sync", "datePublic": "2026-03-05T13:45:00.000Z", "problemTypes": [ { "descriptions": [ { "lang": "en", "cweId": "CWE-522", "description": "CWE-522 Insufficiently Protected Credentials", "type": "CWE" } ] } ], "impacts": [ { "capecId": "CAPEC-157", "descriptions": [ { "lang": "en", "value": "CAPEC-157 Sniffing Attacks" } ] } ], "affected": [ { "vendor": "rustdesk-client", "product": "RustDesk Client", "platforms": [ "Windows", "MacOS", "Linux", "iOS", "Android" ], "collectionURL": "https://github.com/rustdesk/rustdesk/releases", "packageName": "rustdesk-client", "repo": "https://github.com/rustdesk/rustdesk,https://github.com/rustdesk/hbb_common", "modules": [ "Address book sync", "Heartbeat sync loop" ], "programFiles": [ "src/hbbs_http/sync.rs" ], "programRoutines": [ { "name": "heartbeat sync body builder (emits preset-address-book-password verbatim)" } ], "versions": [ { "status": "affected", "version": "0", "lessThanOrEqual": "1.4.8", "changes": [ { "at": "Server Pro", "status": "affected" } ], "versionType": "custom" } ], "defaultStatus": "affected" } ], "cpeApplicability": [ { "nodes": [ { "cpeMatch": [ { "criteria": "cpe:2.3:a:rustdesk-client:rustdesk_client:*:*:windows:*:*:*:*:*", "versionEndIncluding": "1.4.8", "versionStartIncluding": "0", "vulnerable": true }, { "criteria": "cpe:2.3:a:rustdesk-client:rustdesk_client:*:*:macos:*:*:*:*:*", "versionEndIncluding": "1.4.8", "versionStartIncluding": "0", "vulnerable": true }, { "criteria": "cpe:2.3:a:rustdesk-client:rustdesk_client:*:*:linux:*:*:*:*:*", "versionEndIncluding": "1.4.8", "versionStartIncluding": "0", "vulnerable": true }, { "criteria": "cpe:2.3:a:rustdesk-client:rustdesk_client:*:*:ios:*:*:*:*:*", "versionEndIncluding": "1.4.8", "versionStartIncluding": "0", "vulnerable": true }, { "criteria": "cpe:2.3:a:rustdesk-client:rustdesk_client:*:*:android:*:*:*:*:*", "versionEndIncluding": "1.4.8", "versionStartIncluding": "0", "vulnerable": true } ], "negate": false, "operator": "OR" } ], "operator": "OR" } ], "descriptions": [ { "lang": "en", "value": "Cleartext Transmission of Sensitive Information, Insufficiently Protected Credentials vulnerability in rustdesk-client RustDesk Client rustdesk-client on Windows, MacOS, Linux, iOS, Android (Address book sync, Heartbeat sync loop modules) allows Sniffing Attacks.\n\nThe client places the preset address-book password verbatim into the heartbeat sync JSON body (src/hbbs_http/sync.rs). Over an intact HTTPS session it is not exposed in transit, but it is a reusable shared secret rather than a zero-knowledge proof, so it is recovered by any party that becomes the API endpoint - under the re-homed/rogue API server (CVE-2026-30797) - and the leaked credential then authorizes the server-side address book.\n\nThis vulnerability is associated with program files src/hbbs_http/sync.rs and program routines heartbeat sync body builder (emits preset-address-book-password).\n\nThis issue affects RustDesk Client: through 1.4.8.", "supportingMedia": [ { "type": "text/html", "base64": false, "value": "Cleartext Transmission of Sensitive Information, Insufficiently Protected Credentials vulnerability in rustdesk-client RustDesk Client rustdesk-client on Windows, MacOS, Linux, iOS, Android (Address book sync, Heartbeat sync loop modules) allows Sniffing Attacks.

The client places the preset address-book password verbatim into the heartbeat sync JSON body (src/hbbs_http/sync.rs). Over an intact HTTPS session it is not exposed in transit, but it is a reusable shared secret rather than a zero-knowledge proof, so it is recovered by any party that becomes the API endpoint - under the re-homed/rogue API server (CVE-2026-30797) - and the leaked credential then authorizes the server-side address book.

This vulnerability is associated with program files src/hbbs_http/sync.rs and program routines heartbeat sync body builder (emits preset-address-book-password).

This issue affects RustDesk Client: through 1.4.8." } ] } ], "references": [ { "url": "https://rustdesk.com/docs/en/", "tags": [ "technical-description", "x_--config documentation" ] }, { "url": "https://docs.google.com/document/d/e/2PACX-1vSds6jjpd38oO_yIAyd1HYtKNUuea-I-ozAPpGhYI7QgAU-QGJ7D8a4rOZVj1vmiUXV1EcdRHf9aZAW/pub", "tags": [ "third-party-advisory", "exploit" ] }, { "url": "https://www.vulsec.org/", "tags": [ "vdb-entry", "third-party-advisory" ] } ], "metrics": [ { "format": "CVSS", "scenarios": [ { "lang": "en", "value": "GENERAL" } ], "cvssV4_0": { "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "PRESENT", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "subConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "NONE", "subIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED", "version": "4.0", "baseSeverity": "MEDIUM", "baseScore": 6.9, "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N" } } ], "configurations": [ { "lang": "en", "value": "Client with a preset address book password configured", "supportingMedia": [ { "type": "text/html", "base64": false, "value": "Client with a preset address book password configured" } ] } ], "workarounds": [ { "lang": "en", "value": "Avoid setting address book passwords; use account-based access only", "supportingMedia": [ { "type": "text/html", "base64": false, "value": "Avoid setting address book passwords; use account-based access only" } ] } ], "solutions": [ { "lang": "en", "value": "Transition Address Book API to SRP (Secure Remote Password)", "supportingMedia": [ { "type": "text/html", "base64": false, "value": "Transition Address Book API to SRP (Secure Remote Password)" } ] } ], "exploits": [ { "lang": "en", "value": "PoC available. Trivially exploitable.", "supportingMedia": [ { "type": "text/html", "base64": false, "value": "PoC available. Trivially exploitable.
" } ] } ], "credits": [ { "lang": "en", "value": "Erez Kalman", "type": "finder" }, { "lang": "en", "value": "Erez Kalman", "type": "reporter" } ], "source": { "discovery": "UNKNOWN" }, "x_generator": { "engine": "Vulnogram 0.5.0" } }, "adp": [ { "metrics": [ { "other": { "type": "ssvc", "content": { "timestamp": "2026-03-17T14:31:35.721954Z", "id": "CVE-2026-30796", "options": [ { "Exploitation": "poc" }, { "Automatable": "yes" }, { "Technical Impact": "partial" } ], "role": "CISA Coordinator", "version": "2.0.3" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2026-03-17T14:31:39.098Z" } } ] } }