On Sun, Nov 13, 2022 at 9:15:43PM +0800, Geert Stappers via Dnsmasq-discuss 
wrote:
> Upon "run" I get something like:
> 
> | $ python3 dns_request.py request3 5353
> | b'12\x81\x80\x00\x01\x02\x00\x01\x06cert01\x07example...\x03ns2\xc0\x13'
> | $
> 
> 
> The how to reproduce question is answered.  Thanks.
> 
> 
> However I don't understand the problem.
> 
> What I think what would help for getting more attention to the "problem",
> is having a `request0` and `response0` that is a valid / known good
> CERT query. 

Hi,

The original valid response is like this:
|HEADER
|31  32  81  80  00  01  00  01  00  02  00  01
|
|QUESTION
|06  63  65  72  74  30  31  07  65  78  61  6d  70  6c  65  00 00  25 00  01
|
|ANSWER
|c0  0c  00  25  00  01  00  00  00  00  00  55  
|        ff  fe  ff  ff  fe  33  11  5c  6f  2f  64  ff  2b  de  74  c7
|        d0  80  ac  e1  1f  97  ab  d0  cb  bf  bc  82  f3  e3  92  24
|        b2  47  1e  14  68  22  58  29  ff  1b  11  e1  6a  2e  95  02
|        e1  c0  a0  d5  33  e1  8a  14  d6  d5  5f  48  24  aa  41  89
|        fa  ff  fd  75  53  a3  65  77  cd  23  11  e0  bc  69  3a  ce
|        f8  a2  a6  09  a6
|
|AUTHORITY
|c0  13  00  02  00  01  00  00  00  00  00 06  
|        03  6e  73  34  c0  13
|
|c0  13  00  02  00  01  00  00  00  00  00  06  
|        03  6e  73  32  c0  13
|
|ADDITIONAL
|00  00  29  10  00  00  00 00  00  00  00
Here is the download link for the valid message:
* request0 file: https://643684107.oss-cn-beijing.aliyuncs.com/dns/request0
* response0 file: https://643684107.oss-cn-beijing.aliyuncs.com/dns/response0

It can be found by comparison. 
* For the first bug, The class value of answer record returned by response1 is 
wrong, but it is accepted by dnsmasq and returned to the client. Any 
modification of the answer record's class value is acceptable. The rcode of the 
dnsmasq returned packet is 0.
* For the second bug, The domain name compression pointer of answer record 
returned by response1 is wrong. The query domain name does not match the answer 
domain name. The rcode of the dnsmasq returned packet is 0.
* For the third bug, When the DNS packet returned by the domain name server has 
redundant data, it is not detected. The rcode of the dnsmasq returned packet is 
0.
* For these problems, other open source dns software has done correct 
verification and returned to the client the message with rcode 2 or 3.

> With `host -p 5353 -t CERT cert01.example.com 127.0.0.1`
> or `dig @127.0.0.1 -p 5353 -t CERT cert01.example.com` being a replacement
> for the `python3 dns_request.py request0 5353`.

For this, I use the python code to receive the message forwarded to the client 
for analysis.

Thanks,
P1n9
_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to