ʕ·ᴥ·ʔ Dmitry's Internet Website

eMudhra Python mitigations

The eMudhra problem is quite bad. Any system that depends on TLS/SSL and makes network requests is potentially vulnerable. eMudhra was added in spring 2019, so most versions of until 2026-10-20 have problems.

Examples of things in need of attention:

For Python specifically, you’ll need to update pip and uv, since they vendor their own certs and those are exposed.

 1# Update uv
 2brew update && brew upgrade uv
 3# or
 4sudo pacman -Sy uv
 5# or
 6uv self update
 7# Upgrade all Python installations which now ship a patched pip
 8uv python upgrade
 9
10# Updating pip
11python -m pip install "pip @ https://files.pythonhosted.org/packages/3f/06/3e4420302363fbb71be3c7f35ce042f54bfca330e3e66b3a2e3c4cca579f/pip-26.2.2-py3-none-any.whl#sha256=fd7f4dfa8190e014013b9f08f3e973f4e4c26ffd179a204895533a7254813a70"

More useful scripts and information here: Information for Python users regarding eMudhra / emSign CA certificate security incident - Announcements - Discussions on Python.org.

Any vulnerable venv needs to upgrade

1# Upgrade certifi and pip
2uv pip install -U certifi pip
3# If a uv.lock is present, it needs an explicit version bump
4uv lock --upgrade-package certifi

This script will find and print all Python venvs on your machine (under your user) and print the certifi version in that venv

1find ~ /opt /usr/lib -xdev -type f -path '*certifi/__init__.py' 2>/dev/null |
2while read f; do
3  v=$(grep -m1 -oP '__version__ = "\K[^"]+' "$f")
4  echo "$v  ${f%/__init__.py}"
5done | sort