CVE-2026-68554: Coturn: STUN attributes after MESSAGE-INTEGRITY are processed, letting on-path attackers modify authenticated TURN requests
Coturn is a free open source implementation of TURN and STUN Server. Prior to 4.15.0, an on-path attacker can append attributes after MESSAGE-INTEGRITY to an authenticated STUN request on plain UDP or TCP, adjust the STUN header length, and recompute the unkeyed FINGERPRINT while the original HMAC remains valid because it covers only the message prefix. Server-side parsing in src/server/nsturnserver.c continues past MESSAGE-INTEGRITY through handleturnallocate(), handleturncreatepermission(), handleturnrefresh(), and handleturncommand(), allowing trailing LIFETIME, XOR-PEER-ADDRESS, or ORIGIN attributes to override allocation lifetime, inject a permission, or bypass the origin check. TLS and DTLS deployments prevent this in-transit modification. This issue is fixed in version 4.15.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
coturnto a version that resolves this vulnerability.Fixed in 4.15.0 - Compensating control
For coturn deployments that cannot be upgraded immediately, use TLS/DTLS instead of plain UDP/TCP so in-transit modification of authenticated TURN/STUN requests is prevented.
Event History
Frequently Asked Questions
Which deployments are exposed to this issue?
Coturn deployments prior to 4.15.0 that accept authenticated STUN/TURN requests over plain UDP or TCP are exposed to on-path modification. TLS and DTLS deployments prevent the described in-transit modification.
What does an attacker need to exploit it?
The attacker must be on the network path between the client and server and able to alter an authenticated STUN request in transit. They can append attributes after MESSAGE-INTEGRITY, adjust the header length, and recompute the unkeyed FINGERPRINT without invalidating the original HMAC.
What request behavior can be manipulated?
Trailing LIFETIME, XOR-PEER-ADDRESS, or ORIGIN attributes can be processed after MESSAGE-INTEGRITY. This can override an allocation lifetime, inject a permission, or bypass the origin check.
What should be done if upgrading immediately is not possible?
Use TLS or DTLS for TURN/STUN deployments to prevent in-transit request modification. Upgrade Coturn to version 4.15.0 when possible.