Skip to content
Wednesday, October 21, 2026AboutContactRSS
Vulnerabilities

2026.10.19 Update Fixes Revoked emSign Root in certifi and uv to Block MITM

Python tools certifi and uv include a revoked root certificate, letting attackers intercept secure traffic. Updates are available for both packages.

Illustration: A sleek modern laptop sits open on a clean white desk with its screen displaying only a large bold red X superimposed over abstract geometric connection lines.
AI-generated illustration: Patch Herald

Key points

  • certifi versions before 2026.10.19 include a compromised emSign root.
  • uv versions before 0.13.4 trust the same revoked root certificate.
  • Attackers can issue fake certificates for any hostname using this flaw.

The Python package certifi is vulnerable in versions from 2019.03.09 up to 2026.10.18. The Python tool uv is vulnerable in versions before 0.13.4. Both products bundle a root certificate from emSign that has been revoked due to compromised keys. Patches exist for both: certifi 2026.10.19 and uv 0.13.4. Users of these tools must upgrade to prevent potential man-in-the-middle attacks on their secure connections.

In plain English

These software components help applications verify that websites are who they say they are. They do this by trusting a list of official certificate authorities. The emSign root certificate was included in this trusted list for both certifi and uv. However, the private keys for eight intermediate certificates chaining to this root have been compromised. An attacker with those stolen keys can create fake security certificates for any website, which these tools will incorrectly accept as valid.

The background

The issue stems from eight intermediate certificates issued by eMudhra that chain to the emSign ECC Root CA - G3. The private keys for these intermediates were compromised. The certificate authority revoked them, but the root itself remained in the bundles distributed by certifi and uv. This allowed the root to continue being trusted by the tools, enabling an attacker with the compromised intermediate keys to issue certificates that the tools accept, facilitating man-in-the-middle attacks if the attacker is on-path.

What changes now

Certifi version 2026.10.18 removed all emSign roots from its bundle. Version 2026.10.19 restored only the emSign roots that are not affected by the compromise. Users should upgrade to 2026.10.19 or later. For uv, version 0.13.4 removes the vulnerable root from its vendored bundle, aligning with webpki-root-certs 1.0.10. Users of uv must upgrade to 0.13.4 or later. Container images that vendor these packages must also be rebuilt with the updated versions to ensure the fix is applied.

Who needs to act first

Teams usually prioritize systems that handle sensitive data or external connections. Check whether your servers or applications rely on the affected Python packages. Identify which versions are currently running before making changes. Test the updated packages in a non-production environment to ensure compatibility with your existing code. Back up your current configurations and container images before rolling out the updates. This approach minimizes the risk of service disruption while ensuring your systems are protected against the vulnerability as soon as possible.

Background: Certificate authorities

Certificate authorities act as trusted third parties that verify website identities. They issue digital certificates that prove a site is who it claims to be. Without this verification, your browser cannot establish a secure, encrypted connection, leaving your data exposed to interception.

Read the full guide: Certificate Authorities Explained: How Digital Trust Works

What to do and how to stay safe: certifi

  • Verify which versions of certifi and uv are installed on your systems using your package manager or container registry.
  • Upgrade certifi to version 2026.10.19 or later and uv to version 0.13.4 or later to remove the compromised root certificate.
  • Rebuild any container images or virtual machines that bundle these packages to ensure they contain the patched versions.
  • Monitor your application logs for any unusual TLS errors or connection failures after upgrading, as the certificate bundle has changed.

Step-by-step guide: Out-of-Band Patches: Meaning, Risks, and Deployment Reality

General security guidance from the Patch Herald newsroom. It is not confirmed advice from the organisations named in this story.

Frequently asked questions

Can an attacker actually exploit this vulnerability?

An attacker with one of the compromised keys can issue valid-looking certificates for any hostname and intercept TLS traffic if they are on-path, according to GitHub advisories.

Does this affect all versions of certifi?

Certifi versions from 2019.03.09 up to 2026.10.18 are vulnerable, while versions 2026.10.19 and later are patched, according to the advisory.

What about uv versions?

uv versions before 0.13.4 are vulnerable, while version 0.13.4 and later remove the compromised root from their vendored bundle, according to GitHub.

Sources

  1. GitHub Advisory Database
  2. GitHub Advisory Database
certifiuvemSignPythonGitHub

Related stories