Every CVE Search/ Get API key

CVE-2026-24904

TrustTunnel has `client_random_prefix` rule bypass via fragmented or partial TLS ClientHello

5.3 Medium

TrustTunnel is an open-source VPN protocol with a rule bypass issue in versions prior to 0.9.115. In tls_listener.rs, TlsListener::listen() peeks 1024 bytes and calls extract_client_random(...). If parse_tls_plaintext fails (for example, a fragmented/partial ClientHello split across TCP writes), extract_client_random returns None. In rules.rs, RulesEngine::evaluate only evaluates client_random_prefix when client_random is Some(...). As a result, when extraction fails (client_random == None), any rule that relies on client_random_prefix matching is skipped and evaluation falls through to later rules. As an important semantics note: client_random_prefix is a match condition only. It does not mean "block non-matching prefixes" by itself. A rule with client_random_prefix = ... triggers its action only when the prefix matches (and the field is available to evaluate). Non-matches (or None) simply do not match that rule and continue to fall through. The vulnerability is fixed in version 0.9.115.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
None
Availability
None

Exploit likelihood

0.30%Up 0.3 points since Jan 30, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.3

TrustTunnel has `client_random_prefix` rule bypass via fragmented or partial TLS ClientHello

TrustTunnel is an open-source VPN protocol with a rule bypass issue in versions prior to 0.9.115. In tls_listener.rs, TlsListener::listen() peeks 1024 bytes and calls extract_client_random(...). If parse_tls_plaintext fails (for example, a fragmented/partial ClientHello split across TCP writes), extract_client_random returns None. In rules.rs, RulesEngine::evaluate only evaluates client_random_prefix when client_random is Some(...). As a result, when extraction fails (client_random == None), any rule that relies on client_random_prefix matching is skipped and evaluation falls through to later rules. As an important semantics note: client_random_prefix is a match condition only. It does not mean "block non-matching prefixes" by itself. A rule with client_random_prefix = ... triggers its action only when the prefix matches (and the field is available to evaluate). Non-matches (or None) simply do not match that rule and continue to fall through. The vulnerability is fixed in version 0.9.115.

Record
CVE-2026-24904
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-284
Updated
2026-11-02
EUVDEUVD-2026-4949 5.3

TrustTunnel is an open-source VPN protocol with a rule bypass issue in versions prior to 0.9.115. In tls_listener.rs, TlsListener::listen() peeks 1024 bytes and calls extract_client_random(...). If parse_tls_plaintext fails (for example, a fragmented/partial ClientHello split across TCP writes), extract_client_random returns None. In rules.rs, RulesEngine::evaluate only evaluates client_random_prefix when client_random is Some(...). As a result, when extraction fails (client_random == None), any rule that relies on client_random_prefix matching is skipped and evaluation falls through to later rules. As an important semantics note: client_random_prefix is a match condition only. It does not mean "block non-matching prefixes" by itself. A rule with client_random_prefix = ... triggers its action only when the prefix matches (and the field is available to evaluate). Non-matches (or None) simply do not match that rule and continue to fall through. The vulnerability is fixed in version 0.9.115.

Record
EUVD-2026-4949
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02
NVD 5.3

TrustTunnel is an open-source VPN protocol with a rule bypass issue in versions prior to 0.9.115. In tls_listener.rs, TlsListener::listen() peeks 1024 bytes and calls extract_client_random(...). If parse_tls_plaintext fails (for example, a fragmented/partial ClientHello split across TCP writes), extract_client_random returns None. In rules.rs, RulesEngine::evaluate only evaluates client_random_prefix when client_random is Some(...). As a result, when extraction fails (client_random == None), any rule that relies on client_random_prefix matching is skipped and evaluation falls through to later rules. As an important semantics note: client_random_prefix is a match condition only. It does not mean "block non-matching prefixes" by itself. A rule with client_random_prefix = ... triggers its action only when the prefix matches (and the field is available to evaluate). Non-matches (or None) simply do not match that rule and continue to fall through. The vulnerability is fixed in version 0.9.115.

Record
CVE-2026-24904
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-284
Updated
2026-11-02
OSV 5.3

TrustTunnel has `client_random_prefix` rule bypass via fragmented or partial TLS ClientHello

TrustTunnel is an open-source VPN protocol with a rule bypass issue in versions prior to 0.9.115. In tls_listener.rs, TlsListener::listen() peeks 1024 bytes and calls extract_client_random(...). If parse_tls_plaintext fails (for example, a fragmented/partial ClientHello split across TCP writes), extract_client_random returns None. In rules.rs, RulesEngine::evaluate only evaluates client_random_prefix when client_random is Some(...). As a result, when extraction fails (client_random == None), any rule that relies on client_random_prefix matching is skipped and evaluation falls through to later rules. As an important semantics note: client_random_prefix is a match condition only. It does not mean "block non-matching prefixes" by itself. A rule with client_random_prefix = ... triggers its action only when the prefix matches (and the field is available to evaluate). Non-matches (or None) simply do not match that rule and continue to fall through. The vulnerability is fixed in version 0.9.115.

Record
CVE-2026-24904
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-284
Updated
2026-11-02

Affected products

History

History
RecordedChangedSources
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-24904 is a medium vulnerability (CVSS 5.3) in Adguard Trusttunnel, published January 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.30%, the 22nd percentile. No source names a fixed version.

References

MoveEnter Open