Cisco-Talos / cvdupdate

ClamAV Private Database Mirror Updater Tool
Apache License 2.0
93 stars 35 forks source link

unable to resolve current.cvd.clamav.net #10

Closed byroncollins closed 3 years ago

byroncollins commented 3 years ago

vcdupdate isn't working for us as the DNS entry current.cvd.clamav.net doesn't resolve

$ ~/.cvdupdate/logs$ cat 2021-03-18.log 
2021-03-18 03:17:20 PM - WARNING:  Failed to determine available version via DNS TXT query!
2021-03-18 03:17:46 PM - WARNING:  Failed to determine available version via DNS TXT query!
2021-03-18 03:18:57 PM - DEBUG:  Checking available versions via DNS TXT entry query of current.cvd.clamav.net
2021-03-18 03:18:57 PM - DEBUG:  EXCEPTION OCCURRED: 'Resolver' object has no attribute 'resolve'
2021-03-18 03:18:57 PM - WARNING:  Failed to determine available version via DNS TXT query!

dig doesn't resolve DNS

byronc@byronc-lt001:~$ dig current.cvd.clamav.net

; <<>> DiG 9.16.1-Ubuntu <<>> current.cvd.clamav.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63876
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;current.cvd.clamav.net.        IN  A

;; Query time: 8 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Mar 18 15:26:15 NZDT 2021
;; MSG SIZE  rcvd: 51

byronc@byronc-lt001:~$ 

when running vcd update

$:~/.cvdupdate$ cvd update -V
2021-03-18 15:18:57 cvdupdate-0.3.0 DEBUG Checking available versions via DNS TXT entry query of current.cvd.clamav.net
2021-03-18 15:18:57 cvdupdate-0.3.0 DEBUG EXCEPTION OCCURRED: 'Resolver' object has no attribute 'resolve'
2021-03-18 15:18:57 cvdupdate-0.3.0 WARNING Failed to determine available version via DNS TXT query!
Traceback (most recent call last):
  File "/home/byronc/.local/bin/cvd", line 8, in <module>
    sys.exit(cli())
  File "/usr/lib/python3/dist-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/byronc/.local/lib/python3.8/site-packages/cvdupdate/__main__.py", line 259, in update_alias
    ctx.forward(db_update)
  File "/usr/lib/python3/dist-packages/click/core.py", line 573, in forward
    return self.invoke(cmd, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/byronc/.local/lib/python3.8/site-packages/cvdupdate/__main__.py", line 101, in db_update
    errors = m.db_update(db, debug_mode)
  File "/home/byronc/.local/lib/python3.8/site-packages/cvdupdate/cvdupdate.py", line 795, in db_update
    self.logger.error(f"Failed to update {db}. Missing or invalid URL: {self.config['dbs'][db]['url']}")
KeyError: ''
$:~/.cvdupdate$ cd los
micahsnyder commented 3 years ago

Hi @byroncollins I haven't seen this error before:

EXCEPTION OCCURRED: 'Resolver' object has no attribute 'resolve'

My best guess is that you may have an older version of the dnspython dependency. Can you try running this command to see if it solves the issue for you?

pip3 install dnspython --upgrade
byroncollins commented 3 years ago

Thanks dnspython was on 1.16.0 and upgraded to 2.1.0 and now cvdupdate works.

byronc@byronc-lt001:~/.cvdupdate$ pip3 install --upgrade cvdupdate
Requirement already up-to-date: cvdupdate in /home/byronc/.local/lib/python3.8/site-packages (0.3.0)
Requirement already satisfied, skipping upgrade: click>=7.0 in /usr/lib/python3/dist-packages (from cvdupdate) (7.0)
Requirement already satisfied, skipping upgrade: colorama in /usr/lib/python3/dist-packages (from cvdupdate) (0.4.3)
Requirement already satisfied, skipping upgrade: requests in /usr/lib/python3/dist-packages (from cvdupdate) (2.22.0)
Requirement already satisfied, skipping upgrade: rangehttpserver in /home/byronc/.local/lib/python3.8/site-packages (from cvdupdate) (1.2.0)
Requirement already satisfied, skipping upgrade: coloredlogs>=10.0 in /home/byronc/.local/lib/python3.8/site-packages (from cvdupdate) (15.0)
Requirement already satisfied, skipping upgrade: dnspython in /home/byronc/.local/lib/python3.8/site-packages (from cvdupdate) (2.1.0)
Requirement already satisfied, skipping upgrade: humanfriendly>=9.1 in /home/byronc/.local/lib/python3.8/site-packages (from coloredlogs>=10.0->cvdupdate) (9.1)

and cvdupdate

byronc@byronc-lt001:~/.cvdupdate$ cvd update 
2021-03-22 10:46:13 cvdupdate-0.3.0 INFO Downloaded main-59.cdiff
2021-03-22 10:46:22 cvdupdate-0.3.0 INFO Downloaded main.cvd. Version: 59
2021-03-22 10:46:23 cvdupdate-0.3.0 INFO Downloaded daily-26116.cdiff
2021-03-22 10:46:30 cvdupdate-0.3.0 INFO Downloaded daily.cvd. Version: 26116
2021-03-22 10:46:30 cvdupdate-0.3.0 INFO Downloaded bytecode-333.cdiff
2021-03-22 10:46:31 cvdupdate-0.3.0 INFO Downloaded bytecode.cvd. Version: 333

Do you need to and a minimum version to the dnspython requirement in setup.py?

Cheers Byron