CVE-2026-27624
Coturn: IPv4-mapped IPv6 (::ffff:0:0/96) bypasses denied-peer-ip ACL
Coturn is a free open source implementation of TURN and STUN Server. Coturn is commonly configured to block loopback and internal ranges using "denied-peer-ip" and/or default loopback restrictions. CVE-2020-26262 addressed bypasses involving "0.0.0.0", "[::1]" and "[::]", but IPv4-mapped IPv6 is not covered. When sending a "CreatePermission" or "ChannelBind" request with the "XOR-PEER-ADDRESS" value of "::ffff:127.0.0.1", a successful response is received, even though "127.0.0.0/8" is blocked via "denied-peer-ip". The root cause is that, prior to the updated fix implemented in version 4.9.0, three functions in "src/client/ns_turn_ioaddr.c" do not check "IN6_IS_ADDR_V4MAPPED". "ioa_addr_is_loopback()" checks "127.x.x.x" (AF_INET) and "::1" (AF_INET6), but not "::ffff:127.0.0.1." "ioa_addr_is_zero()" checks "0.0.0.0" and "::", but not "::ffff:0.0.0.0." "addr_less_eq()" used by "ioa_addr_in_range()" for "denied-peer-ip" matching: when the range is AF_INET and the peer is AF_INET6, the comparison returns 0 without extracting the embedded IPv4. Version 4.9.0 contains an updated fix to address the bypass of the fix for CVE-2020-26262.
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
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.2
Coturn: IPv4-mapped IPv6 (::ffff:0:0/96) bypasses denied-peer-ip ACL
Coturn is a free open source implementation of TURN and STUN Server. Coturn is commonly configured to block loopback and internal ranges using "denied-peer-ip" and/or default loopback restrictions. CVE-2020-26262 addressed bypasses involving "0.0.0.0", "[::1]" and "[::]", but IPv4-mapped IPv6 is not covered. When sending a "CreatePermission" or "ChannelBind" request with the "XOR-PEER-ADDRESS" value of "::ffff:127.0.0.1", a successful response is received, even though "127.0.0.0/8" is blocked via "denied-peer-ip". The root cause is that, prior to the updated fix implemented in version 4.9.0, three functions in "src/client/ns_turn_ioaddr.c" do not check "IN6_IS_ADDR_V4MAPPED". "ioa_addr_is_loopback()" checks "127.x.x.x" (AF_INET) and "::1" (AF_INET6), but not "::ffff:127.0.0.1." "ioa_addr_is_zero()" checks "0.0.0.0" and "::", but not "::ffff:0.0.0.0." "addr_less_eq()" used by "ioa_addr_in_range()" for "denied-peer-ip" matching: when the range is AF_INET and the peer is AF_INET6, the comparison returns 0 without extracting the embedded IPv4. Version 4.9.0 contains an updated fix to address the bypass of the fix for CVE-2020-26262.
- Record
CVE-2026-27624- CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N - Weakness
- CWE-284, CWE-441
- Updated
- 2026-11-02
EUVDEUVD-2026-8620
7.2
Coturn is a free open source implementation of TURN and STUN Server. Coturn is commonly configured to block loopback and internal ranges using "denied-peer-ip" and/or default loopback restrictions. CVE-2020-26262 addressed bypasses involving "0.0.0.0", "[::1]" and "[::]", but IPv4-mapped IPv6 is not covered. When sending a "CreatePermission" or "ChannelBind" request with the "XOR-PEER-ADDRESS" value of "::ffff:127.0.0.1", a successful response is received, even though "127.0.0.0/8" is blocked via "denied-peer-ip". The root cause is that, prior to the updated fix implemented in version 4.9.0, three functions in "src/client/ns_turn_ioaddr.c" do not check "IN6_IS_ADDR_V4MAPPED". "ioa_addr_is_loopback()" checks "127.x.x.x" (AF_INET) and "::1" (AF_INET6), but not "::ffff:127.0.0.1." "ioa_addr_is_zero()" checks "0.0.0.0" and "::", but not "::ffff:0.0.0.0." "addr_less_eq()" used by "ioa_addr_in_range()" for "denied-peer-ip" matching: when the range is AF_INET and the peer is AF_INET6, the comparison returns 0 without extracting the embedded IPv4. Version 4.9.0 contains an updated fix to address the bypass of the fix for CVE-2020-26262.
- Record
EUVD-2026-8620- CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
NVD
7.2
Coturn is a free open source implementation of TURN and STUN Server. Coturn is commonly configured to block loopback and internal ranges using "denied-peer-ip" and/or default loopback restrictions. CVE-2020-26262 addressed bypasses involving "0.0.0.0", "[::1]" and "[::]", but IPv4-mapped IPv6 is not covered. When sending a "CreatePermission" or "ChannelBind" request with the "XOR-PEER-ADDRESS" value of "::ffff:127.0.0.1", a successful response is received, even though "127.0.0.0/8" is blocked via "denied-peer-ip". The root cause is that, prior to the updated fix implemented in version 4.9.0, three functions in "src/client/ns_turn_ioaddr.c" do not check "IN6_IS_ADDR_V4MAPPED". "ioa_addr_is_loopback()" checks "127.x.x.x" (AF_INET) and "::1" (AF_INET6), but not "::ffff:127.0.0.1." "ioa_addr_is_zero()" checks "0.0.0.0" and "::", but not "::ffff:0.0.0.0." "addr_less_eq()" used by "ioa_addr_in_range()" for "denied-peer-ip" matching: when the range is AF_INET and the peer is AF_INET6, the comparison returns 0 without extracting the embedded IPv4. Version 4.9.0 contains an updated fix to address the bypass of the fix for CVE-2020-26262.
- Record
CVE-2026-27624- CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-284, CWE-441
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-27624
6.5
Coturn is a free open source implementation of TURN and STUN Server. Coturn is commonly configured to block loopback and internal ranges using "denied-peer-ip" and/or default loopback restrictions. CVE-2020-26262 addressed bypasses involving "0.0.0.0", "[::1]" and "[::]", but IPv4-mapped IPv6 is not covered. When sending a "CreatePermission" or "ChannelBind" request with the "XOR-PEER-ADDRESS" value of "::ffff:127.0.0.1", a successful response is received, even though "127.0.0.0/8" is blocked via "denied-peer-ip". The root cause is that, prior to the updated fix implemented in version 4.9.0, three functions in "src/client/ns_turn_ioaddr.c" do not check "IN6_IS_ADDR_V4MAPPED". "ioa_addr_is_loopback()" checks "127.x.x.x" (AF_INET) and "::1" (AF_INET6), but not "::ffff:127.0.0.1." "ioa_addr_is_zero()" checks "0.0.0.0" and "::", but not "::ffff:0.0.0.0." "addr_less_eq()" used by "ioa_addr_in_range()" for "denied-peer-ip" matching: when the range is AF_INET and the peer is AF_INET6, the comparison returns 0 without extracting the embedded IPv4. Version 4.9.0 contains an updated fix to address the bypass of the fix for CVE-2020-26262.
- Record
ALPINE-CVE-2026-27624- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-03
OSV
7.2
Coturn: IPv4-mapped IPv6 (::ffff:0:0/96) bypasses denied-peer-ip ACL
Coturn is a free open source implementation of TURN and STUN Server. Coturn is commonly configured to block loopback and internal ranges using "denied-peer-ip" and/or default loopback restrictions. CVE-2020-26262 addressed bypasses involving "0.0.0.0", "[::1]" and "[::]", but IPv4-mapped IPv6 is not covered. When sending a "CreatePermission" or "ChannelBind" request with the "XOR-PEER-ADDRESS" value of "::ffff:127.0.0.1", a successful response is received, even though "127.0.0.0/8" is blocked via "denied-peer-ip". The root cause is that, prior to the updated fix implemented in version 4.9.0, three functions in "src/client/ns_turn_ioaddr.c" do not check "IN6_IS_ADDR_V4MAPPED". "ioa_addr_is_loopback()" checks "127.x.x.x" (AF_INET) and "::1" (AF_INET6), but not "::ffff:127.0.0.1." "ioa_addr_is_zero()" checks "0.0.0.0" and "::", but not "::ffff:0.0.0.0." "addr_less_eq()" used by "ioa_addr_in_range()" for "denied-peer-ip" matching: when the range is AF_INET and the peer is AF_INET6, the comparison returns 0 without extracting the embedded IPv4. Version 4.9.0 contains an updated fix to address the bypass of the fix for CVE-2020-26262.
- Record
CVE-2026-27624- CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N - Weakness
- CWE-284, CWE-441
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-27624
6.5
Coturn is a free open source implementation of TURN and STUN Server. Coturn is commonly configured to block loopback and internal ranges using "denied-peer-ip" and/or default loopback restrictions. CVE-2020-26262 addressed bypasses involving "0.0.0.0", "[::1]" and "[::]", but IPv4-mapped IPv6 is not covered. When sending a "CreatePermission" or "ChannelBind" request with the "XOR-PEER-ADDRESS" value of "::ffff:127.0.0.1", a successful response is received, even though "127.0.0.0/8" is blocked via "denied-peer-ip". The root cause is that, prior to the updated fix implemented in version 4.9.0, three functions in "src/client/ns_turn_ioaddr.c" do not check "IN6_IS_ADDR_V4MAPPED". "ioa_addr_is_loopback()" checks "127.x.x.x" (AF_INET) and "::1" (AF_INET6), but not "::ffff:127.0.0.1." "ioa_addr_is_zero()" checks "0.0.0.0" and "::", but not "::ffff:0.0.0.0." "addr_less_eq()" used by "ioa_addr_in_range()" for "denied-peer-ip" matching: when the range is AF_INET and the peer is AF_INET6, the comparison returns 0 without extracting the embedded IPv4. Version 4.9.0 contains an updated fix to address the bypass of the fix for CVE-2020-26262.
- Record
DEBIAN-CVE-2026-27624- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
Show 4 moreShow less
OSVUBUNTU-CVE-2026-27624
7.2
Coturn is a free open source implementation of TURN and STUN Server. Coturn is commonly configured to block loopback and internal ranges using "denied-peer-ip" and/or default loopback restrictions. CVE-2020-26262 addressed bypasses involving "0.0.0.0", "[::1]" and "[::]", but IPv4-mapped IPv6 is not covered. When sending a "CreatePermission" or "ChannelBind" request with the "XOR-PEER-ADDRESS" value of "::ffff:127.0.0.1", a successful response is received, even though "127.0.0.0/8" is blocked via "denied-peer-ip". The root cause is that, prior to the updated fix implemented in version 4.9.0, three functions in "src/client/ns_turn_ioaddr.c" do not check "IN6_IS_ADDR_V4MAPPED". "ioa_addr_is_loopback()" checks "127.x.x.x" (AF_INET) and "::1" (AF_INET6), but not "::ffff:127.0.0.1." "ioa_addr_is_zero()" checks "0.0.0.0" and "::", but not "::ffff:0.0.0.0." "addr_less_eq()" used by "ioa_addr_in_range()" for "denied-peer-ip" matching: when the range is AF_INET and the peer is AF_INET6, the comparison returns 0 without extracting the embedded IPv4. Version 4.9.0 contains an updated fix to address the bypass of the fix for CVE-2020-26262.
- Record
UBUNTU-CVE-2026-27624- CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
OSVMGASA-2026-0051 No score
Updated coturn packages fix security vulnerability
IPv4-mapped IPv6 (::ffff:0:0/96) bypasses denied-peer-ip ACL. (CVE-2026-27624)
- Record
MGASA-2026-0051- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10375-1 No score
coturn-4.9.0-1.1 on GA media
These are all security issues fixed in the coturn-4.9.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10375-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21184-1 No score
Security update for coturn
This update for coturn fixes the following issues:
Changes in coturn:
-
Update to version 4.14.0 New
- No more dependency on prometheus-client-c
- HTTPS support for prometheus client (optional)
- TLS support for redis - now compatible with managed redis (optional).
- Rate limiting "401 Unauthorized" responses - reduces reflection attacks off the coturn server. This is an experimental feature - not fully tested on production scale deployment and massive DDoS attacks. New prometheus counters should help shed some light on real life behavior and performance. The feature is off by default. What's Changed
- validate hmackey length in sqlite_get_user_key before hex decode.
- Add out-of-tree patch to restore deprecated OpenSSL 1.1.1.
- Add optional TLS transport for Redis connections.
- Fix relay threads override.
- Flush prometheus hot-path counters once per second to kill lock contention.
- fix signed-char index out-of-bounds read in base64_decode.
- Build Prometheus exporter from vendored local sources.
- Prom https.
- Fix realm quota data race and warnings.
- Add per-source rate-limiting of UDP 401 Unauthorized responses
-
Update to version 4.13.1
- null-terminate server_name in stun_is_challenge_response_str.
- Canonicalize all IPv4-in-IPv6 encodings before peer-IP checks.
- Auto-deny coturn's own database backend endpoints as relay peers.
- Deny link-local / ULA / site-local relay peers by default.
-
Update to version 4.13.0
- Wrap atomic everywhere.
- Fix sendmmsg stride bug in multiplex-peer UDP batch flush.
- Reap TURN permissions/channels via a per-thread sweep instead of per-object timers.
- Add --udp-sendmmsg-log to observe egress sendmmsg/UDP-GSO batching.
- Expose recvmmsg/sendmmsg UDP batch sizes as Prometheus metrics
- Restrict recvmmsg fast path to shared fan-in sockets (make --udp-recvmmsg useful standalone).
- Enable --udp-recvmmsg by default on Linux.
- Security hardening: port parsing, admin brute-force throttle, credential log redaction, constant-time compare, OAuth bounds checks, permission cap (#1932).
- Add continuous latency mode to stunclient.
- Fix test_redis_format link failure.
- Fix configure MANPREFIX typo.
- Fix missing sqlite3 dependendcy.
- Fix UDP receive buffer ownership.
-
Update to version 4.12.0
- Update khash to the latest version (#1919).
- Update readme to match latest changes (#1920).
- Update docs for drop-invalid-packets and response-origin-only-with-rfc5780.
- Multiplexpeer (#1916).
- Fix TTL/TOS type conversion (#1915).
- turnutils_uclient: sender thread pool + UDP-GSO send batching + recv_pps reporting (#1913).
- Fix memory leak introduced by recvmmsg path (#1912).
- turnutils_uclient: multi-threaded listener (recv) pool.
- examples/turnserver.conf: update description of cli option.
- turnutils_uclient: Linux recvmmsg receive path + larger SO_RCVBUF (#1910).
- Add UDP-GSO send path (--udp-gso) (#1907).
- turnutils_peer: Linux fast path with drain loop, recvmmsg/sendmmsg, U… (#1908).
- Relay recvmmsg (#1906).
- fuzzing: use hex escapes for HTTP EOH dictionary entry.
- Sync turnserver man page with current CLI options (#1903).
- Remove stale --ne option from turnserver --help (#1904).
- Restore CodeQL permissions, category, and manual build mode.
-
Update to version 4.11.0
- Filc harness and pointer typedefs (#1896).
- Load generator mode in turnutils_uclient (#1894).
- Cache hot lookups in TURN data-path handlers (#1893).
- Inline get_ioa_addr_len() in the header (#1891).
- Trim two redundant checks from per-packet relay hot path.
- Hoist turn_server_get_engine() out of per-packet hot path.
- Add fuzz coverage for integrity helpers (#1888).
- Add deterministic challenge-response builder to FuzzStun.
- Seed address-mapping table in fuzz initializer (#1885).
- Unblock fuzz coverage for…
- Record
openSUSE-SU-2026:21184-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
coturnAlpine:v3.23 |
before 4.10.0-r0 | 4.10.0-r0 |
coturnAlpine:v3.24 |
before 4.9.0-r0 | 4.9.0-r0 |
coturnDebian:12 |
All versions, plus listed versions 4.12.0-14.14.0-14.15.0-14.18.0-14.6.1-14.6.1-2 |
None known |
coturnDebian:13 |
All versions, plus listed versions 4.12.0-14.14.0-14.15.0-14.18.0-14.6.1-2 |
None known |
coturnDebian:14 |
before 4.12.0-1, plus listed versions 4.6.1-2 |
4.12.0-1 |
coturnMageia:9 |
before 4.6.2-1.1.mga9 | 4.6.2-1.1.mga9 |
coturnUbuntu:16.04:LTS |
All versions, plus listed versions 4.4.5.4-24.5.0.2-34.5.0.3-14.5.0.3-1build14.5.0.3-1ubuntu0.24.5.0.3-1ubuntu0.34.5.0.3-1ubuntu0.4 |
None known |
coturnUbuntu:18.04:LTS |
All versions, plus listed versions 4.5.0.6-1ubuntu24.5.0.7-1ubuntu14.5.0.7-1ubuntu24.5.0.7-1ubuntu2.18.04.14.5.0.7-1ubuntu2.18.04.24.5.0.7-1ubuntu2.18.04.3 |
None known |
coturnUbuntu:20.04:LTS |
All versions, plus listed versions 4.5.1.1-1.1build14.5.1.1-1.1build24.5.1.1-1.1ubuntu0.20.04.14.5.1.1-1.1ubuntu0.20.04.2 |
None known |
coturnUbuntu:22.04:LTS |
All versions, plus listed versions 4.5.2-34.5.2-3.1~ubuntu22.04.1 |
None known |
Show 6 moreShow less
| Package | Affected | Fixed |
|---|---|---|
coturnUbuntu:24.04:LTS |
All versions, plus listed versions 4.6.1-1build14.6.1-1build24.6.1-1build34.6.1-1build4 |
None known |
coturnUbuntu:25.10 |
All versions, plus listed versions 4.6.1-2build1 |
None known |
coturnUbuntu:26.10 |
All versions, plus listed versions 4.6.1-2build24.12.0-14.14.0-14.15.0-14.18.0-1 |
None known |
coturnUbuntu:26.04:LTS |
All versions, plus listed versions 4.6.1-2build14.6.1-2build2 |
None known |
coturnopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 4.9.0-1.1 | 4.9.0-1.1 |
coturnopenSUSE:Leap 16.0 From an advisory covering 2 CVEs |
before 4.14.0-bp160.1.1 | 4.14.0-bp160.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected, aliases, references | OSV | |
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-27624 is a high vulnerability (CVSS 7.2) in Coturn, published February 25, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.34%, the 28th percentile. Fixed in coturn 4.10.0-r0.
References
github.com/coturn/coturn/security/advisories/GHSA-j8mm-mpf8-gvjg
github.com/coturn/coturn/security/advisories/GHSA-6g6j-r9rf-cm7p
github.com/coturn/coturn/commit/b80eb898ba26552600770162c26a8ae7f3661b0b
security.alpinelinux.org/vuln/CVE-2026-27624
github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27624.json
nvd.nist.gov/vuln/detail/CVE-2026-27624
Show 10 moreShow less
security-tracker.debian.org/tracker/CVE-2026-27624
advisories.mageia.org/MGASA-2026-0051.html
bugs.mageia.org/show_bug.cgi?id=35179
lists.fedoraproject.org/archives/list/[email protected]/message/37LHFMZ3OPUJRL3DZ3WVCJ7FO62HMVUT
ubuntu.com/security/CVE-2026-27624
cve.org/CVERecord?id=CVE-2026-27624
suse.com/security/cve/CVE-2025-69217
suse.com/security/cve/CVE-2026-27624
bugzilla.suse.com/1255744
bugzilla.suse.com/1258847
Left out here: the rest of 1 source description. The JSON record has them.