FlawAtlas
Search the atlas
CVE-2016-8625 High

IDNA 2003 makes curl use wrong host

When curl is built with libidn to handle International Domain Names (IDNA), it translates them to puny code for DNS resolving using the IDNA 2003 standard, while IDNA 2008 is the modern and up-to-date IDNA standard. This misalignment causes problems with for example domains using the German ß character (known as the Unicode Character `LATIN SMALL LETTER SHARP S`) which is used at times in the `.de` TLD and is translated differently in the two IDNA standards, leading to users potentially and unknowingly issuing network transfer requests to the wrong host. For example, `straße.de` is translated into `strasse.de` using IDNA 2003 but is translated into `xn--strae-oqa.de` using IDNA 2008. Needless to say, those hostnames could well resolve to different addresses and be two completely independent servers. IDNA 2008 is mandatory for `.de` domains. curl is not alone with this problem, as there is currently a big flux in the world of network user-agents about which IDNA version to support and use. This name problem exists for DNS-using protocols in curl, but only when built to use libidn.

Exploit probability 4.3%
Published November 2, 2016
Required by Not available
Last source change May 27, 2026

02 / AFFECTED SOFTWARE

Affected packages

Unknown Unknown

139 explicit affected versions

Unknown Unknown

165 explicit affected versions

03 / CONNECTIONS

Connected vulnerabilities

04 / EVIDENCE

Source records

Open Source Vulnerabilities CVE-2016-8625

curl before version 7.51.0 uses outdated IDNA 2003 standard to handle International Domain Names and this may lead users to potentially and unknowingly issue network transfer requests to the wrong host.

View original source
Open Source Vulnerabilities CURL-CVE-2016-8625

When curl is built with libidn to handle International Domain Names (IDNA), it translates them to puny code for DNS resolving using the IDNA 2003 standard, while IDNA 2008 is the modern and up-to-date IDNA standard. This misalignment causes problems with for example domains using the German ß character (known as the Unicode Character `LATIN SMALL LETTER SHARP S`) which is used at times in the `.de` TLD and is translated differently in the two IDNA standards, leading to users potentially and unknowingly issuing network transfer requests to the wrong host. For example, `straße.de` is translated into `strasse.de` using IDNA 2003 but is translated into `xn--strae-oqa.de` using IDNA 2008. Needless to say, those hostnames could well resolve to different addresses and be two completely independent servers. IDNA 2008 is mandatory for `.de` domains. curl is not alone with this problem, as there is currently a big flux in the world of network user-agents about which IDNA version to support and use. This name problem exists for DNS-using protocols in curl, but only when built to use libidn.

View original source

05 / REFERENCES

Further evidence