The previous releases, 13.12.1, 3.3-10, 3.2-12, 3.1-23, and 3.0-20, include only a partial fix. If you run one of them, upgrade to the release in the preceding table instead of following this guide.
Astro Runtime 12 and earlier are out of maintenance and don’t include the fix. If you can’t upgrade to a fixed version yet, use this guide to apply the same mitigation to your own image.
Upgrading is the recommended fix. Use this guide only as a temporary measure until you can upgrade. See Upgrade Astro Runtime.
Dockerfile, after the FROM line. The FROM line depends on your Runtime version:
- Astro Runtime 13 and earlier:
FROM astrocrpublic.azurecr.io/astronomer/astro-runtime:<version>, such as12.12.0. - Astro Runtime 3.x:
FROM astrocrpublic.azurecr.io/runtime:<version>, such as3.2-11.
-ubi9 or -python-3.11, that you use today. See Operating system variant images.
Affected root certificates
Distrust both of the following roots in your image:emSign ECC Root CA - G3Comodo AAA Services root
Step 1: Update the operating system trust store
Choose the tab that matches your image.- Debian 12
- Debian 11
- RHEL UBI
Use this tab for the default images of Astro Runtime 13, 12, and 3.x. Upgrading all packages also picks up other security fixes that have been released since your Runtime version.
Step 2: Update Python packages that bundle CA lists
Python libraries such asrequests use the certifi CA bundle instead of the operating system trust store. gRPC clients, such as the OpenTelemetry gRPC exporter and Google Cloud client libraries, use the CA list that grpcio bundles, not certifi or the operating system trust store. The pip, virtualenv, and uv packaging tools also bundle their own CA lists. In Astro Runtime 13 and earlier, the PythonVirtualenvOperator uses virtualenv to create its environments. Add the fixed versions to your requirements.txt file:
pip and don’t include uv. Adding uv is safe.
Step 3: Update the pip that new virtual environments get
When you create a virtual environment withpython -m venv, Python installs the copy of pip that it bundles, not the pip installed in your image. In affected Runtime versions, that bundled copy is older than pip 26.2.2. The following example replaces it with pip 26.2.2:
pip 26.2.2.
If your image tag includes -ubi9, skip this step. In those images, the bundled pip uses the operating system trust store, which you updated in Step 1.
Step 4: Check for custom CA bundles
If you setREQUESTS_CA_BUNDLE, SSL_CERT_FILE, CURL_CA_BUNDLE, or GRPC_DEFAULT_SSL_ROOTS_FILE_PATH to a custom CA bundle, remove the two roots from that bundle as well. Tools that you add to your image with their own bundled CA list, such as the Google Cloud CLI, need their own updates.
Step 5: Test and deploy
- Run
astro dev restartto rebuild the image locally. - Run a Dag that connects to your key external services to confirm that TLS connections still work.
- Deploy with
astro deploy.
Next steps
Plan an upgrade to a Runtime version that includes the complete fix, such as Astro Runtime 3.3-11. Once you upgrade, you can revert yourDockerfile to the standard image and remove the extra steps.