voltone

voltone

On September 30th, the root CA certificate DST Root CA X3 will expire. Let’s Encrypt have started rolling out a creative certificate chain to servers that use their certificates, which unfortunately may trip up some Erlang/Elixir applications once that DST Root CA expires. This could lead to outages due to failed TLS handshakes on the connection between such applications and those servers/services. Recent versions of Erlang/OTP include a fix that prevent those issues.

If you run an application on the BEAM that may communicate over TLS with one or more servers/services that present a Let’s Encrypt certificate, the safest thing to do is make sure the application is running on Erlang/OTP 23.3.4.5 or later, or 24.0.4 or later. If that’s not an option, check out this post for other, client and OTP-version specific recommendations.

Keep in mind that, due to client connection pools and TLS session reuse, an affected application may continue to function normally until some time after September 30th when the first new TLS handshake takes place…

Edit - let me clarify, this is not about servers (e.g. Phoenix apps) that have a Let’s Encrypt certificate, it is about any application that connects to a server with a Let’s Encrypt certificate, e.g. through an HTTP client, an MQTT client, a higher-level API client that uses an HTTP client, etc. That could include Phoenix apps, but also CLI tools, CI/CD scripts, embedded devices, …

Showing Posts 1 to 10

dimitarvp

dimitarvp

You are a treasure, man. Thank you!

10
Post #1
benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

@AstonJ might be worth pinning?

AstonJ

AstonJ

…done :023:

voltone

voltone OP

Mint v1.4.0 was released, with a fix to ensure it connects successfully even on affected OTP versions.

10
Post #7
chrismccord

chrismccord

Creator of Phoenix

@voltone I just want to say thank you for your stellar contributions around TLS in all the various ways you’ve helped the community over the years, including phx.gen.cert, blogs, and answering questions. This kind of stuff is incredibly valuable to everyone. Thank you!

26
Post #8
kenny-evitt

kenny-evitt

@voltone Thanks!

Based on the posts, these libraries should work as-is, i.e. with no upgrades needed:

  • hackney
  • HTTPoison (because it uses hackney)

This one needs to be upgraded itself, but not Elixir/Erlang/OTP too

  • Mint

I can’t think of any other libraries off the top of my head.

voltone

voltone OP

True, as long as you rely entirely on Hackney’s default ssl options. If you pass in any ssl options of your own (e.g. to disable TLS 1.0 and 1.1, to send a client certificate, to change the ssl module’s log level) there is a good chance you will be affected. That is, if your custom ssl options do indeed verify the server’s certificate and you didn’t accidentally revert back to ssl’s default of verify: :verify_none.

There’s a few other HTTP clients that make ssl options the responsibility of the user, including httpc and Gun. Here again it all depends on what options you pass in.

And that’s just HTTP clients. You have to consider other TLS clients as well:

  • Redis clients
  • MQTT clients
  • DB clients
  • SMTP (email) clients
  • App monitoring agents

And some people may have built some network protocol client of their own using ssl directly.

So unless you are absolutely sure that your application only ever uses Hackney with its ssl defaults, I would still recommend you upgrade your OTP version if at all possible.

kenny-evitt

kenny-evitt

Thanks!

yukster

yukster

Anyone know if there are alpine docker images in the works that will use Erlang 23.3.4.5? I’m not seeing anything on docker hub: elixir - Official Image | Docker Hub

neilberkman

neilberkman

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 94592 917
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
Quite interesting article Google brought me. Didn’t find any mentions about it here. What do you think in general? Would you use togethe...
New
AstonJ
Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post ...
New
maennchen
:warning: Security advisory: Decimal DoS vulnerability A vulnerability has been published for decimal where very large exponents can cau...
New
Null-logic-0
What IDE or editor are you using for Elixir development? Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New

Other Trending Topics Top

marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews