CVE-2026-43994
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedCoturn is a free open source implementation of TURN and STUN Server. Versions prior to 4.10.0 contain a stack buffer overflow in decode_oauth_token_gcm(). A uint16_t nonce_len field read from an attacker-supplied OAuth access token (0-65535) is passed directly to memcpy() as the copy length into a 256-byte stack buffer (oauth_encrypted_block.nonce[256]) without bounds checking. The overflow occurs before AES-GCM authentication is verified, the attacker does not need to know the OAuth key or produce a valid AES-GCM token. Up to 735 bytes of attacker-controlled data are written past the buffer, may corrupt adjacent stack data, including control-flow data depending on compiler, ABI, and mitigations. Requires --oauth mode (non-default). This may provide a plausible RCE primitive depending on exploit mitigations; because coturn is widely deployed for WebRTC TURN/STUN and --oauth is commonly recommended, impact can be broad. This issue has been fixed in version 4.10.0.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceCoturn versions before 4.10.0 contain a stack buffer overflow in the decode_oauth_token_gcm() function where a uint16_t nonce_len field (0-65535) from an attacker-supplied OAuth token is used directly as the length parameter to memcpy() into a fixed 256-byte stack buffer (oauth_encrypted_block.nonce[256]) without any bounds validation. The overflow occurs before AES-GCM authentication is verified, allowing unauthenticated attackers to write up to 735 bytes of attacker-controlled data past the buffer boundary, potentially corrupting adjacent stack variables including control-flow data.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data< 4.10.0CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Identify coturn versionRun 'turnserver --version' or check the installed package version using your system's package manager (e.g., dpkg -l coturn, rpm -qi coturn)Affected if The installed version is less than 4.10.0 (e.g., 4.9.0, 4.8.0, etc.)
-
Locate coturn configuration fileCommon locations include /etc/turnserver.conf, /etc/turn/turnserver.conf, or consult your deployment documentation for the active configuration pathAffected if Configuration file exists and OAuth-related settings are present
-
Verify OAuth mode is enabledSearch the configuration file for 'oauth' keyword. Look for lines containing 'oauth', 'oauth-token', or similar OAuth-related directives. The vulnerability is only exploitable when OAuth token processing is activeAffected if OAuth mode is explicitly enabled in the configuration (e.g., presence of oauth, oauth-token, or similar directives) or the server is configured to process OAuth tokens from incoming requests
-
Check for OAuth-related runtime parametersRun 'turnserver --help' or review startup scripts for any --oauth flags or environment variables that enable OAuth processing at runtimeAffected if OAuth processing is active at runtime via command-line flags or environment configuration
You are affected if coturn version is below 4.10.0 AND OAuth mode is enabled (the attack requires both conditions to be true).
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scoped4.10.0
Upgrade coturn to version 4.10.0 or later which contains the fix for proper bounds checking before the memcpy operation. Until upgrade is complete, consider disabling --oauth mode if operationally feasible, though this is non-default so may not be actively used.
4.10.0
- 1. Identify the current Coturn version by running `turnadmin --version` or checking the package manager
- 2. Download Coturn version 4.10.0 or later from the official GitHub repository (github.com/coturn/coturn) or update via your package manager
- 3. Backup your current Coturn configuration files (usually in /etc/ or /usr/local/etc/)
- 4. Install the upgraded Coturn package or compile from source
- 5. Restore your configuration and verify the service starts successfully
- 6. Confirm the version has been updated by running `turnadmin --version`
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation2.0 h
- Implementation4.0 h
- Testing3.0 h
- Review / QA2.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $3,088.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-43994 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-43994 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data