Skip to content

Releases: oryxlabs/PolarDNS

v1.6.6

08 Jul 11:19

Choose a tag to compare

New features and updates.

08/Jul/2025

  • added the rrfz module for resource record fuzzing
  • various small fixes across polardns.py, individual modules and the test runner test/run.sh
  • added tests (total test count: 2405)
  • updated documentation

Full Changelog: v1.6.5...v1.6.6

v1.6.5

01 Jul 10:57

Choose a tag to compare

New features and updates.

01/Jul/2025

  • added support for configuring arbitrary number of nameservers managing the domain
  • added zone delegation support, allowing subdomains to be delegated to different nameservers via the configuration file
  • added the nsgluetest module for testing discrepancies between NS records in the zone and glue records in the parent
  • added the a feature for generating RFC-compliant responses to A queries, also allowing to generate any IP address
  • implemented internal tracking of query counts per domain name
  • added the count feature for retrieving the number of queries made to a specific domain
  • added the wild feature designed to evaluate how resolvers handle wildcard records
  • implemented support for returning SOA records in the Authority section for NODATA and NXDOMAIN situations
  • improved support and handling of 0x20 encoding in all modules
  • improved handling and parsing of the configuration file
  • improved EDNS0 option parsing and handling
  • various fixes across polardns/core.py, individual modules and the test runner test/run.sh
  • updated tests outputs for compatibility with DiG version 9.20.7
  • added tests (total test count: 2399)
  • updated documentation

Full Changelog: v1.6.4...v1.6.5

v1.6.4

04 Apr 12:48

Choose a tag to compare

New features and updates.

04/Apr/2025

  • added option to act universally authoritative for any domain, configurable via config file
  • implemented support for responding to NS and SOA queries for all subdomains
  • updated test runner test/run.sh to support convenient reference output updates
  • various minor fixes across polardns/core.py, modules, and E2E workflows
  • consolidated tests (total test count: 2369)

26/Mar/2025

  • enhanced E2E workflows to include resolver and PolarDNS logs in test artifacts
  • fixed the newid modifier to ensure the response transaction ID always differs from the query
  • updated documentation

25/Mar/2025

  • added compression when uploading E2E test results in the GitHub Workflow

Full Changelog: v1.6.3...v1.6.4

v1.6.3

24 Mar 09:56

Choose a tag to compare

New features and updates.

24/Mar/2025

  • added reusable GitHub Workflow for end-to-end (E2E) testing of DNS resolvers
  • added example GitHub Workflow integration for BIND9, PowerDNS, Knot Resolver, Unbound, CoreDNS, and Dnsmasq
  • added a template for E2E tests

19/Mar/2025

  • fixed 0x20 encoding (randomly mixed uppercase and lowercase in DNS queries) in all record injection modules

Full Changelog: v1.6.2...v1.6.3

v1.6.2

18 Mar 18:21

Choose a tag to compare

New features and updates.

18/Mar/2025

  • major rework of the polardns test runner test/run.sh, now based on actual dig outputs rather than just checksums

13/Mar/2025

  • added rc modifier allowing to set custom reply codes (statuses) for DNS responses (e.g., NOERROR, NXDOMAIN, SERVFAIL)
  • implemented size limits in various functions to prevent errors caused by requesting oversized responses
  • added tests (total test count: 2439)

Full Changelog: v1.6.1...v1.6.2

v1.6.1

10 Mar 19:19

Choose a tag to compare

New installation methods and small updates.

Change log:

10/Mar/2025

  • restructured the project into a package installable via pip
  • created a wrapper polardns.py to support traditional standalone usage
  • published the polardns package to PyPI repository (polardns)
  • updated documentation
  • code cleanup

20/Feb/2025

  • updated documentation
  • published Docker image to Docker Hub (oryxlabs/polardns)
  • added a script gendocs.py for generating the documentation

Full Changelog: v1.6.0...v1.6.1

v1.6.0

04 Feb 16:44

Choose a tag to compare

New documentation, features and updates.

Change log:

03/Feb/2025

  • new catalog documentation using GitHub Pages, providing detailed explanations, examples, and PCAP files for each example
  • major rework of all modules to align with the new documentation format, including examples and in-depth explanations
  • added tests (total test count: 2407)

28/Jan/2025

  • deprecated the bigcname feature, succeeded by the nfz modifier
  • deprecated the cgena feature, succeeded by the nfz modifier
  • deprecated the cgenb feature, succeeded by the nfz modifier
  • deprecated the cnamefuzz1 feature, succeeded by the nfz modifier
  • deprecated the cnamefuzz2 feature, succeeded by the nfz modifier
  • deprecated the dotcname feature, succeeded by the nfz modifier
  • deprecated the illcname feature, succeeded by the nfz modifier
  • deprecated the manycnames feature, succeeded by the nfz modifier
  • deprecated the manylabels feature, succeeded by the nfz modifier
  • deprecated the cutabuf feature, succeeded by the cut modifier
  • deprecated the cutcnamebuf feature, succeeded by the cut modifier
  • deprecated the chunkedcnames feature, succeeded by the cnk modifier

27/Jan/2025

  • deprecated the inj01 feature, succeeded by the inja feature
  • deprecated the inj02 feature, succeeded by the inja feature
  • deprecated the inj03 feature, succeeded by the inja feature
  • deprecated the inj04 feature, succeeded by the inja feature
  • deprecated the inj05 feature, succeeded by the inja feature
  • deprecated the inj06 feature, succeeded by the injaaaa feature
  • deprecated the inj07 feature, succeeded by the inja feature
  • deprecated the inj08 feature, succeeded by the inja feature
  • deprecated the inj09 feature, succeeded by the injptr feature
  • deprecated the inj10 feature, succeeded by the injns feature
  • deprecated the inj11 feature, succeeded by the injns feature
  • deprecated the inj12 feature, succeeded by the injns feature
  • deprecated the inj13 feature, succeeded by the injns feature
  • deprecated the inj14 feature, succeeded by the injcname feature

26/Jan/2025

  • major consolidation of all cache poisoning (record injection) modules, introducing new injection features
  • added the inja feature for injecting unsolicited A records
  • added the injns feature for injecting unsolicited NS records
  • added the injaaaa feature for injecting unsolicited AAAA records
  • added the injcname feature for injecting unsolicited CNAME records
  • added the injdname feature for injecting unsolicited DNAME records
  • added the injmx feature for injecting unsolicited MX records

19/Jan/2025

  • overhaul of the nfz name fuzzing generator, now supporting variable, parameterized, and customizable malformations
  • enhanced the always feature feature to support generating a variable number of A or AAAA records

15/Dec/2024

  • enhanced the size feature to support both A and AAAA records
  • enhanced the self feature to return both the client's IP address and source port

11/Dec/2024

  • added the cnk modifier enabling transmission of DNS responses in variable sized chunks
  • added the len modifier allowing adjusting the DNS packet length (size) in TCP

28/Oct/2024

  • added the queryback4 feature
  • added self-DoS protection in the queryback3 feature

Full History: v1.5.0...v1.6.0

v1.5.0

24 Sep 12:13

Choose a tag to compare

New features and updates.

Change log:

  • added the nsloop, nschain and nsalias features responding with NS records
  • added the spfloop, spfchain, spfalias1 and spfalias2 features responding with TXT SPF records
  • the loop, chain and alias generic features now also support the NS and SPF (TXT) record types
  • added the ptralias, ptrloop1 and ptrloop2 features responding with PTR records
  • added the nptenumalias and nptenumloop features returning NAPTR records in response to ENUM (E.164) phone number queries
  • added the add modifier for appending arbitrary bytes to the end of the packet
  • added the rl modifier for recalculating the length in TCP in case cut or add modifiers were used during a request
  • changed behavior across all alias* feature (CNAME/DNAME/HTTPS/SVCB/SRV/MX/NS/TXT) to send only one alias by default
  • small fix in matching of underscored domain names for the SRV and SVCB alias/chain/loop features
  • enhanced the tests, test/test.sh -h will give usage info
  • various other small code optimizations and code fixes
  • adopting the semantic versioning (SemVer)
  • updated the catalogue documentation
  • added tests (total test count: 750)

Full History: v1.4...v1.5.0

v1.4

08 Jul 12:18

Choose a tag to compare

New features and updates.

Change log:

  • added support for the Attrleaf naming pattern (underscored domain names) for the SRV and SVCB alias/chain/loop features
  • enhanced the nfz modifier, added 4 more variants, now it can produce 49 different domain name variants
  • deprecated the manycnames, cnamefuzz1, cnamefuzz2 and illcname features
  • added support for parsing the EDNS0 section, configurable via config file
  • added the size feature that responds with the maximum number of A records that can fit in the specified packet size
  • added support for DNS compression, configurable via config file
  • added the nc modifier to not use compression in a response
  • added the fc modifier to force compression in a response
  • added the cut modifier for cutting arbitrary number of bytes from the end of the packet
  • deprecated the cutabuf and cutcnamebuf features
  • many code optimizations and code fixes
  • updated the catalogue documentation
  • added tests (total test count: 678)

Full History: v1.3...v1.4

v1.3

04 Jun 12:08

Choose a tag to compare

New features and updates.

Change log:

  • improved the startup module loading logic to be more robust and user-friendly
  • optimized the random number generation everywhere to use the random.getrandbits() which looks to be fastest
  • added the nfz modifier for name fuzzing, which can produce various illegal and malformed domain names
  • added the cnloop, cnchain and cnalias features responding with CNAME records
  • added the dnloop, dnchain and dnalias features responding with DNAME records
  • added the htloop, htchain and htalias features responding with HTTPS records
  • added the svloop, svchain and svalias features responding with SVCB records
  • added the srloop, srchain and sralias features responding with SRV records
  • added the mxloop, mxchain and mxalias features responding with MX records
  • added tests for all the new features (total test count: 545)
  • updated the catalogue documentation

Full History: v1.2...v1.3