Osegi
Security·2 min read

eMudhra Report: Faulty Python Script Weakened Private Keys

eMudhra's post-incident report blames a custom Python script for truncating the private keys of eight intermediate certificates, one of them to a single byte.

Digital padlock over lines of Python code symbolizing a weakened cryptographic key in a certificate authority breach.
Image: The Indian Express

A flawed Python script written by eMudhra's own engineers weakened the private keys behind eight intermediate certificates, shrinking one to a single byte, the Indian certificate authority said in its full post-incident report published on Tuesday, November 10.

The script wrapped each key in an encrypted blob so it could be moved to hardware security modules (HSMs) at the company's US and EU sites, then unwrapped it at the destination. A bug made it read the unwrapped key back incorrectly from host-side memory, truncating the values. The keys ended up far weaker than the accepted 384-bit strength. An independent researcher using the alias 'Wayne' reverse-engineered them nearly a month ago; the smallest key was '4' and the largest '237'.

New revocations and what went wrong

The report also disclosed for the first time that eMudhra revoked eight additional RSA key pairs on November 7. The company had said on October 19 that the RSA issuers were unaffected. The script did not shorten the RSA keys, but their private attributes sat in the volatile memory of a Python process, and eMudhra could not show they were handled in line with its own rules.

The affected certificates were six TLS and two code-signing certificates. Of 195 end-entity certificates listed, 130 came from the now-revoked EM DV TLS CA – G2C, covering domains of universities, colleges, a county and eMudhra itself. The company stresses that the original keys were generated correctly in an April 30, 2025 ceremony, and that the HSMs are not at fault. It blames the script and weak process controls.

The transfer was a one-off, it said, driven by delayed hardware shipping, a root store policy change effective June 15, 2025, and a cross-certification deadline with Sectigo that required keys before the end of May 2025.

Why it matters

An attacker holding such keys could issue fraudulent certificates for domains they do not control and enable man-in-the-middle attacks, India's CERT-In warned on October 21. Google, Microsoft, Apple and Mozilla blocked all eight intermediates, and Cloudflare and others issued updates. eMudhra has since said it is leaving the global digital certificate business to focus on digital signature and authentication services in India.

Apps worth a look

SUMO: the number puzzle

Tap the right tiles, add them up, hit the target. Easy to learn, hard to master. Free, for all ages.

Tags:emudhracertificate authoritypythonprivate keystls certificatescert-in

More from this day

See all →

More in: Security

See all →