Configurable DNS domain validation for SRV records

XMLWordPrintableJSON

    • Configurable DNS domain validation for SRV records
    • Python Drivers
    • Needed
    • Hide

      Summary of necessary driver changes

      •  

      Commits for syncing spec/prose tests
      (and/or refer to an existing language POC if needed)

      •  

      Context for other referenced/linked tickets

      •  
      Show
      Summary of necessary driver changes   Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed)   Context for other referenced/linked tickets  
    • In Progress
    • 0
    • 3
    • 0
    • 100
    • 🟢 On Track
    • Hide
      • WRITING-38729 (Infrastructure Support for Public Suffix List) is done
      • DRIVERS-3568 is in code review (waiting for reviewers to review at the moment) and blocks DRIVERS-3329 (I expect drivers to implement the two simultaneously) – I was on PTO for a bit so I think that delayed things a little.
      Show
      WRITING-38729 (Infrastructure Support for Public Suffix List) is done DRIVERS-3568 is in code review (waiting for reviewers to review at the moment) and blocks DRIVERS-3329 (I expect drivers to implement the two simultaneously) – I was on PTO for a bit so I think that delayed things a little.
    • Hide

      2026-08-18 - 🟢 On Track

      • WRITING-38729 (Infrastructure Support for Public Suffix List) is done
      • DRIVERS-3568 is in code review (waiting for reviewers to review at the moment) and blocks DRIVERS-3329 (I expect drivers to implement the two simultaneously) – I was on PTO for a bit so I think that delayed things a little.

      2026-08-18 - 🟢 On Track
      WRITING-38729 (Infrastructure Support for Public Suffix List) is done
      DRIVERS-3568 is in code review and blocks DRIVERS-3329 (I expect drivers to implement the two simultaneously)


      2026-07-21 - 🟢 On Track
      WRITING-38729 (Infrastructure Support for Public Suffix List) is in progress and blocks DRIVERS-3329


      2026-07-21 - 🟢 On Track
      WRITING-38729 (Infrastructure Support for Public Suffix List) is in progress and blocks DRIVERS-3329


      2026-07-21 - 🟢 On Track
      No project update provided


      2026-06-11 - No confidence status provided
      No project update provided


      2026-02-12 - No confidence status provided
      No project update provided


      Show
      2026-08-18 - 🟢 On Track WRITING-38729 (Infrastructure Support for Public Suffix List) is done DRIVERS-3568 is in code review (waiting for reviewers to review at the moment) and blocks DRIVERS-3329 (I expect drivers to implement the two simultaneously) – I was on PTO for a bit so I think that delayed things a little. 2026-08-18 - 🟢 On Track WRITING-38729 (Infrastructure Support for Public Suffix List) is done DRIVERS-3568 is in code review and blocks DRIVERS-3329 (I expect drivers to implement the two simultaneously) 2026-07-21 - 🟢 On Track WRITING-38729 (Infrastructure Support for Public Suffix List) is in progress and blocks DRIVERS-3329 2026-07-21 - 🟢 On Track WRITING-38729 (Infrastructure Support for Public Suffix List) is in progress and blocks DRIVERS-3329 2026-07-21 - 🟢 On Track No project update provided 2026-06-11 - No confidence status provided No project update provided 2026-02-12 - No confidence status provided No project update provided
    • Needed
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      PYTHON-5814 In Progress
      CDRIVER-6351 Backlog
      CXX-3515 Backlog
      CSHARP-6077 Backlog
      GODRIVER-3953 Backlog
      JAVA-6233 Defining
      NODE-7610 Backlog
      PHPLIB-1867 Done
      RUBY-3899 Backlog
      RUST-2444 In Progress
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } #scriptField td.willNotDo { background-color: #FF0000; /* Red color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion PYTHON-5814 In Progress CDRIVER-6351 Backlog CXX-3515 Backlog CSHARP-6077 Backlog GODRIVER-3953 Backlog JAVA-6233 Defining NODE-7610 Backlog PHPLIB-1867 Done RUBY-3899 Backlog RUST-2444 In Progress
    • None
    • None
    • None
    • None
    • None
    • None

      According to the Initial DNS Seedlist Discovery specification, "A driver MUST verify that the host names returned through SRV records share the original SRV's domainname. In addition, SRV records with fewer than three . separated parts, the returned hostname MUST have at least one more domain level than the SRV record hostname. Drivers MUST raise an error and MUST NOT initiate a connection to any returned hostname which does not fulfill these requirements."

      The parsing logic however assumes that the left-most part of a URL (period-separated) is the subdomain, and everything to the right of that is the domain. This can result in user-managed DNS records that should be valid being considered invalid.

      For example, if a DNS record of _mongodb._tcp.mongodb.mydomain.net contained regionally separated URLs in the form of:

      • mongodb1.us-east-1.mydomain.net
      • mongodb2.us-east-1.mydomain.net
      • mongodb3.us-west-1.mydomain.net

      this would be considered invalid.

       

      Acceptance Criteria

      • update appropriate specification docs (initial-dns-seedlist-discovery and uri-options) about the new parameter, srvAllowedHostsSuffix
      • add unified tests
      • provide a new specification (DRIVERS-3568) detailing how we safeguard arbitrary host names being passed in via the public suffix list or something similar

            Assignee:
            Iris Ho
            Reporter:
            Alex Bevilacqua
            Ross Lawley Ross Lawley
            Rishabh Bisht Rishabh Bisht
            None
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              11 weeks, 1 day
              None
              None