ArchLinux: 201609-31: c-ares: arbitrary code execution
Summary
When a string is passed in to ares_create_query or ares_mkquery and uses an escaped trailing dot, like "hello\.", c-ares calculates the string length wrong and subsequently writes outside of the the allocated buffer with one byte. The wrongly written byte is the least significant byte of the 'dnsclass' argument; most commonly 1.
Resolution
Upgrade to 1.12.0-1.
# pacman -Syu "c-ares>=1.12.0-1"
The problem has been fixed upstream in version 1.12.0.
References
https://c-ares.org/adv_20160929.html https://c-ares.org/CVE-2016-5180.patch https://access.redhat.com/security/cve/CVE-2016-5180
Workaround
None.