{"id":"CVE-2026-43994","aliases":["DEBIAN-CVE-2026-43994","EUVD-2026-37941","GHSA-74pg-rfh2-5qw5","UBUNTU-CVE-2026-43994","openSUSE-SU-2026:11617-1"],"status":"published","title":"Coturn: Stack buffer overflow in decode_oauth_token_gcm()","description":"Coturn 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.","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00675,"percentile":0.52616,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-120"],"published":"2026-06-18T19:44:46Z","modified":"2026-10-28T02:30:38Z","fixes":[{"ecosystem":"Debian:14","package":"coturn","fixed_in":["4.12.0-1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.12.0-1","4.14.0-1","4.15.0-1","4.18.0-1","4.6.1-1","4.6.1-2"]},{"source":"osv","ecosystem":"Debian:13","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.12.0-1","4.14.0-1","4.15.0-1","4.18.0-1","4.6.1-2"]},{"source":"osv","ecosystem":"Debian:14","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.12.0-1"}]}],"versions":["4.6.1-2"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.4.5.4-2","4.5.0.2-3","4.5.0.3-1","4.5.0.3-1build1","4.5.0.3-1ubuntu0.2","4.5.0.3-1ubuntu0.3","4.5.0.3-1ubuntu0.4"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.5.0.6-1ubuntu2","4.5.0.7-1ubuntu1","4.5.0.7-1ubuntu2","4.5.0.7-1ubuntu2.18.04.1","4.5.0.7-1ubuntu2.18.04.2","4.5.0.7-1ubuntu2.18.04.3"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.5.1.1-1.1build1","4.5.1.1-1.1build2","4.5.1.1-1.1ubuntu0.20.04.1","4.5.1.1-1.1ubuntu0.20.04.2"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.5.2-3","4.5.2-3.1~ubuntu22.04.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.6.1-1build1","4.6.1-1build2","4.6.1-1build3","4.6.1-1build4"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.6.1-2build1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.6.1-2build2","4.12.0-1","4.14.0-1","4.15.0-1","4.18.0-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.6.1-2build1","4.6.1-2build2"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"coturn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.17.2-1.1"}]}],"bundled":17}],"products":[{"vendor":"coturn","product":"coturn"},{"vendor":"coturn_project","product":"coturn"}],"references":[{"url":"https://github.com/coturn/coturn/security/advisories/GHSA-74pg-rfh2-5qw5","tags":["x_refsource_CONFIRM","exploit","Exploit","Mitigation","Vendor Advisory","advisory","report"]},{"url":"https://github.com/coturn/coturn/releases/tag/4.10.0","tags":["x_refsource_MISC","Release Notes","web","report"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43994.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-43994","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-43994","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-43994","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-43994","tags":["report"]},{"url":"https://github.com/coturn/coturn/commit/5ca467e70915c033f371cd7a9742759c68f56363","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-40613","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-43915","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-43994","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-53448","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-53449","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-53450","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-62959","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-65981","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-68552","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-68553","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-68554","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-68555","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73212","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73213","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73214","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73215","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73216","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-43994","title":"Coturn: Stack buffer overflow in decode_oauth_token_gcm()","description":"Coturn 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.","status":"published","published":"2026-06-18T19:44:46.575Z","modified":"2026-06-22T18:06:27.688Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-120"],"updated_at":"2026-11-02T13:37:36.275898Z"}],"euvd":[{"id":"EUVD-2026-37941","description":"Coturn 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.","status":"published","published":"2026-06-18T19:44:46Z","modified":"2026-06-22T18:06:27Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T18:20:34.238696Z"}],"nvd":[{"id":"CVE-2026-43994","description":"Coturn 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.","status":"published","published":"2026-06-18T21:16:28.63Z","modified":"2026-06-26T02:30:37.633Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"}],"cwes":["CWE-120"],"updated_at":"2026-11-02T14:12:24.912854Z"}],"osv":[{"id":"CVE-2026-43994","title":"Coturn: Stack buffer overflow in decode_oauth_token_gcm()","description":"Coturn 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.","status":"published","published":"2026-06-18T19:44:46.575Z","modified":"2026-10-28T02:30:38.417586342Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-120"],"updated_at":"2026-11-02T15:45:04.820169Z"},{"id":"DEBIAN-CVE-2026-43994","description":"Coturn 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.","status":"published","published":"2026-06-18T21:16:28.63Z","modified":"2026-10-10T16:00:06.544462889Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:55.669088Z"},{"id":"UBUNTU-CVE-2026-43994","description":"Coturn 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.","status":"published","published":"2026-06-18T21:16:00Z","modified":"2026-10-17T13:00:06.943723365Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T16:56:22.075798Z"},{"id":"openSUSE-SU-2026:11617-1","title":"coturn-4.17.2-1.1 on GA media","description":"These are all security issues fixed in the coturn-4.17.2-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-08-27T00:00:00Z","modified":"2026-08-28T18:23:08.654818419Z","updated_at":"2026-11-02T16:58:39.516824Z"}]}}
