{"id":"GHSA-hq85-5cpj-mr62","kind":"vulnerability","aliases":["GHSA-hq85-5cpj-mr62"],"related":[],"title":"uv's bundled CA store trusts an emSign root whose intermediate CA keys are compromised","description":"By default, uv verifies TLS connections against a vendored copy of the `webpki-root-certs` bundle. Versions before 0.13.4 include the `emSign ECC Root CA - G3` root. Eight eMudhra intermediate CA certificates that chain to that root have compromised private keys, and the CA has revoked them.\n\nAn attacker with one of the compromised keys can issue certificates that uv accepts for any hostname, and can be used to issue certificates to enable MITM attacks.\n\nuv 0.13.4 removes the root from its vendored bundle, following `webpki-root-certs` 1.0.10. Upgrade to 0.13.4 or later.","summary":"uv, the Python package manager, ships a bundled list of trusted certificate authorities that still includes an emSign root whose intermediate keys were compromised and revoked. An attacker holding one of those keys can forge TLS certificates for any hostname, which uv will accept, enabling man-in-the-middle interception of its connections.","severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"uv","fixed":["0.13.4"],"affected":"< 0.13.4","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["ci","cwe-295","developer-workstations","package","python","uv"],"not_affected_if":["system-trust-store-only","uv-0.13.4-or-later"],"how_to_check":"Run `uv --version` and confirm it is below 0.13.4.","fix":"Upgrade uv to 0.13.4 or later, which removes the affected root from its bundled CA store.\nIf uv cannot be upgraded, pin or use a system trust store instead of the bundled one (exact setting unknown from sources).","status":"open","published_at":"2026-10-20T19:37:52+00:00","first_seen_at":"2026-10-23T19:11:32+00:00","triaged_at":"2026-10-23T20:13:31+00:00","updated_at":"2026-10-23T20:13:31+00:00","category":"package","confidence":0.85,"triage":{"at":"2026-10-23T20:13:31Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade uv to 0.13.4 or later, which removes the affected root from its bundled CA store.\nIf uv cannot be upgraded, pin or use a system trust store instead of the bundled one (exact setting unknown from sources).","summary":"uv, the Python package manager, ships a bundled list of trusted certificate authorities that still includes an emSign root whose intermediate keys were compromised and revoked. An attacker holding one of those keys can forge TLS certificates for any hostname, which uv will accept, enabling man-in-the-middle interception of its connections.","category":"package","who_cares":["python","uv","ci","developer-workstations"],"confidence":0.85,"analyst_note":"","how_to_check":"Run `uv --version` and confirm it is below 0.13.4.\nunknown","needs_analyst":false,"not_affected_if":["uv-0.13.4-or-later","system-trust-store-only"],"severity_if_unknown":"critical"},"cost_usd":0.000382,"input_tokens":2163,"output_tokens":331,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-295':29B '0.13.4':109C,167C,183C '1.0.10':180C '5cpj':19A,24A 'accept':79B,151C 'attack':63B,139C,165C 'author':48B 'bundl':3A,43B,106C,174C 'ca':4A,12A,115C,121C,134C 'cert':105C,179C 'certif':47B,72B,122C,148C,161C 'chain':124C 'ci':27B 'compromis':15A,59B,129C,144C 'connect':89B,95C 'copi':99C 'cwe':28B 'default':91C 'develop':31B 'developer-workst':30B 'ecc':113C 'eight':118C 'emsign':8A,53B,112C 'emudhra':119C 'enabl':80B,163C 'follow':175C 'forg':70B 'g3':116C 'ghsa':17A,22A 'ghsa-hq85-5cpj-mr62':16A,21A 'hold':64B 'hostnam':75B,154C 'hq85':18A,23A 'includ':51B,110C 'intercept':86B 'intermedi':11A,56B,120C 'issu':147C,160C 'key':13A,57B,68B,131C,145C 'later':185C 'list':44B 'man':82B 'man-in-the-middl':81B 'manag':40B 'middl':85B 'mitm':164C 'mr62':20A,25A 'one':65B,141C 'packag':33B,39B 'privat':130C 'python':34B,38B 'remov':168C 'revok':61B,136C 'root':9A,54B,104C,114C,117C,127C,170C,178C 'ship':41B 'still':50B 'store':5A 'tls':71B,94C 'trust':6A,46B 'upgrad':181C 'use':158C 'uv':1A,26A,35B,36B,77B,92C,150C,166C 'vendor':98C,173C 'verifi':93C 'version':107C 'webpki':103C,177C 'webpki-root-cert':102C,176C 'whose':10A,55B 'workstat':32B","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-20T19:37:52+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-hq85-5cpj-mr62","url":"https://github.com/advisories/GHSA-hq85-5cpj-mr62","severity":"critical","published_at":"2026-10-20T19:37:52+00:00","modified_at":"2026-10-20T19:37:54+00:00","first_seen_at":"2026-10-23T19:11:32+00:00","fetched_at":"2026-10-23T19:11:32+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}