4510. [security] Named mishandled some responses where covering RRSIG

records are returned without the requested data
                        resulting in a assertion failure. (CVE-2016-9147)
                        [RT #43548]

(cherry picked from commit 6adf421e7e)
This commit is contained in:
Mark Andrews 2016-12-29 11:47:19 +11:00
parent b243aa40f9
commit 701aa95d96
2 changed files with 16 additions and 7 deletions

View file

@ -97,6 +97,11 @@
4511. [bug] win32: mdig.exe-BNFT was missing Configure. [RT #43554]
4510. [security] Named mishandled some responses where covering RRSIG
records are returned without the requested data
resulting in a assertion failure. (CVE-2016-9147)
[RT #43548]
4509. [test] Make the rrl system test more reliable on slower
machines by using mdig instead of dig. [RT #43280]

View file

@ -6984,15 +6984,19 @@ answer_response(fetchctx_t *fctx) {
* a CNAME or DNAME).
*/
INSIST(!external);
if ((rdataset->type !=
dns_rdatatype_cname) ||
!found_dname ||
(aflag ==
DNS_RDATASETATTR_ANSWER))
/*
* Don't use found_cname here
* as we have just set it
* above.
*/
if (cname == NULL &&
!found_dname &&
aflag ==
DNS_RDATASETATTR_ANSWER)
{
have_answer = ISC_TRUE;
if (rdataset->type ==
dns_rdatatype_cname)
if (found_cname &&
cname == NULL)
cname = name;
name->attributes |=
DNS_NAMEATTR_ANSWER;