Skip to main content

FreeTDS was auto-updated on 5/13/25 and it broke TLS on 8.0 protocol for a critical integration

Comments

5 comments

  • Daniel Muey

    Does setting TDS_Version to 8.0 in the DSN allow them to talk?



    Note: I can’t edit that format out, its like a backtick is stuck somewhere 🤔

    1
  • cPRex Jurassic Moderator

    Hey there!  It does look like there were some changes in the recent freetds release:

    https://github.com/FreeTDS/freetds/blob/Branch-1_5/NEWS.md#summary-of-changes-in-release-15

    The one mentioning TLS says this:

    "Support strict encryption for naked TLS (TDS 8.0);"

    so this wouldn't be related to something on the cPanel side but in the package itself.  Can you check and see if that could be the cause of your issues?

    1
  • RickKukiela

    Daniel Muey I'm connecting via PDO in PHP (outside of my tsql test).  Are you referring to my connection string there? The only place I set that value is in my `~/.odbc.ini` file which has the following:

    [CLIENTNAME]
    Description             = MSSQL Server
    Driver                  = FreeTDS
    Database                = DBName
    ServerName              = SERVER_ALIAS_IN_FREETDS.CONF
    DMConnAttr              = SQL_ATTR_CONNECTION_TIMEOUT=10
    TDS_Version             = 7.4

    The freetds.conf file located at `/opt/cpanel/freetds/etc/freetds.conf` contains:

    [global]
    # TDS protocol version
    tds version = auto

    [SERVER_ALIAS_REFERENCED_IN_~/.odbc.ini]
    encryption = require
    port = 1433
    host = IP_REMOVED_FROM_POST

     

    When I have the TDS Version set to 7.4 in the odbc.ini file it works. When I have 8.0 set there, it does not.

     

    0
  • RickKukiela

    cPRex I checked that link and it says it "added support" so by that nature it shouldn't be backward breaking. Even then, I currently have it encrypted and working on 7.4 by setting that new encryption value (see above) to "require" in my freetds.conf file. From what I understand, 8.0 has always required encryption by default, so it stands to reason that setting the new encryption setting to "require" would be the way it was set up to work previously.

    At this point I really don't understand what is different with the encryption handshake between TDS 7.4 and 8.0 when both have "encryption=require" The handshake and encryption works correctly on 7.4. It's quite confusing that 8.0 is causing issues now when it previously did not.

     

    0
  • cPRex Jurassic Moderator

    Honestly I have no idea on that one as that would be a deeper issue than the cPanel software.  It would be best to reach out to the freetds developers to see what specifically changed in that release.

    0

Please sign in to leave a comment.