That's not the case, Go uses the system store with an additional revoke/deny list in crypto/x509 because it allows updating a deployed application on an out of date or slow moving platform or OS.
This CVE is literally just "versions of the Go deny list don't contain the eMuhdra revokation yet". Older versions of Go will still deny certs signed through the compromised certificate if the system store already has the update.
> Go uses the system store with an additional revoke/deny list in crypto/x509 because it allows updating a deployed application on an out of date or slow moving platform or OS.
Reminder: Neither the CVE nor the linked go alert seem to say that you have to recompile and redeploy your application with the new go version in order to take advantage of this change. Just updating the tool chain and go stdlib isn't enough, because this stuff gets baked into the resultant binary. This is unlike, say, python, Ruby, or java where updating the runtime may be sufficient, depending on your development and deployment model.
Great. The technology has progressed enough to kill the existing technologies. It's like the fish in a pool creating a shark that eats away all the fish while the fish proudly announce that their great creation (shark) as the frontier progress for their fish race.
In other words, that software bundled the compromised certs into the binary, so upgrading it is the only way to remove them.
This is about Go proactively blocking intermediates. Which shouldn't strictly be necessary as long as your OS has removed or distrusted the CAs (on my laptop, macOS has done that, although it seems like it did so in a way not all tools have access to; for example, rustls-platform-verifier respects it, but rustls-webpki still loads the bad CAs from the system trust store).
No it affects everybody, but most browsers/OSs etc have updated already. This is just a workaround Go put in case the underlying OS has not been updated. Not sure why it is on the front page as it duplicates previous posts and confuses people, I think it should be merged.
I've had since Debian 8 (2015) few helper scripts to make me remember better how to manage approved CA's. There are three of those, which have been working all Debian versions since 8 to current 13.
# cat /usr/local/sbin/ca-certificates-list-active
#!/usr/bin/env bash
#
# BFMI tool to list Debian CA certificates active - mesrik, 2015
#
CA_CONFIG=/etc/ca-certificates.conf
CA_REPO_DEBIAN=/usr/share/ca-certificates
if [ -f $CA_CONFIG ]; then
# study any ca-certificates which have been configured active
for i in $(egrep -v '^[#!]' /etc/ca-certificates.conf) ; do
cert_source=$(dirname $i)
cert_file=$(basename $i)
openssl x509 -in $CA_REPO_DEBIAN/$cert_source/$cert_file -noout -subject |\
sed 's/^subject=//'
done
else
echo "$(basename $0): Ooops, was not able to access $CA_CONFIG"
fi
# eof
#!/usr/bin/env bash
#
# BFMI tool to invalidate all CA certificates in Debian Jessie - mesrik, 2015
#
CA_CONFIG=/etc/ca-certificates.conf
prog=$(basename $0)
usage="Usage: $prog { -commit }"
if [ $# -lt 1 ]; then
echo $usage
exit 1
fi
if [ "$1" = "-commit" ]; then
if [ -f $CA_CONFIG ]; then
backup_ext=$(date -r $CA_CONFIG +".%FT%T%z")
perl -wpi$backup_ext -e 's/^([^!#].*)$/!$1/;' $CA_CONFIG
if [ $? -eq 0 ]; then
echo "$prog: backup $CA_CONFIG$backup_ext was made."
/usr/sbin/update-ca-certificates
fi
else
echo "$prog: Ooops, was not able to access $CA_CONFIG"
fi
else
echo "$prog: Need -commit to actually invalidate all CA's"
fi
# eof
ps. I did bit of editing, I didn't expect Tab to be ignored when pasting here.
At this point, extrapolating from the speed of AI progress we're seeing, can we expect to see 10x as many reports like this in a single day before the end of the year?
This is such a clusterfuck. I use so many containers in my home lab and various local installations and stuff. Honestly, I have no idea what I'm even supposed to do at this point because I'm not a full time developer.
cool cool cool. Don't understand what you're doing, and keep not understanding what you're doing. the agents are infallible after all, and who cares about properly verifying certs anyway? that's nerd shit.
We're in October 2026. Updating packages is the easiest thing Claude can do. For me, I asked and received:
Node 26.3 → 26.12.1
Homebrew’s CA bundle, certifi and OpenSSL are updated, and so are Python 3.13 and 3.14 (3.13.17 and 3.14.9).
uv 0.10.9 → 0.13.5.
python.org Python 3.13: pip 26.2.2, installed from PyPI’s wheel with its checksum checked, then certifi 2026.10.19.
It also checked some of the other recent vulnerabilities like LiteLLM (already updated).
Sure, and by outsourcing this simple thing, you're just a little more complacent. Someday, when it does something silly, you won't notice.
It went OK this time. There's no guarantee that it'll go OK every time, for every thing.
All I'm saying is that understanding how to maintain the systems that you are responsible for maintaining is an important thing, and outsourcing that understanding is very dangerous.
"All I'm saying is that understanding how to maintain the systems"
Awwww. It is like talking to a dev in 2010. Ok. So, there are machines now smarter than you. You are the problem. You are the thing that adds errors. "understanding how to maintain" No, that is over. sorry. As a human, you are too slow, too dumb to compete.
When a CVE comes out, the patch needs to be applied across the company in minutes. YOU cannot do this 2010 dev dude. Put down the Puppet files. Let go of the python PR.
Yeah, at some point I gave up and asked AI to do patching for me. It was a good call because it found affected certificates in places where I wouldn't look (e.g. aws-cli or Libre Office).
don't worry. if you're in this situation with this attitude, you're likely running out of date container base images and whatnot.
i highly suggest you forget about containers, learn about systemd unit file hardening, and then you only have to play sysadmin to your base os and the binary for the program you want to run.
Well, that is what people who have been around the block a few times have been saying about containers since just about forever. "I don't want to be an admin for my n software packages, I'll use containers!" - now you are the admin of n containers, except with worse tools than your distro and no upstream support.
And since before that, when we started turning to additional packages managers installed with package managers. Pip etc. mean that an “apt upgrade” isn’t enough, when it really “should” be (used to be) in a well managed system.
Then we layered _another_ level of package management on top with Flatpak etc.
I don’t think anyone has _really_ been - in practice - able to understand how many versions of Python (or shells or ruby or Perl etc…) are installed on any system for a decade or two now.
[Yes, I use all these things - it’s so hard _not_ to and still use modern software or participate in modern software development…]
I use some rules and a few generated scripts and have a LLM handle the management of the containers. Security through a ssh gateway, allows them to deploy/remove containers and then the rule is to stay at least two weeks behind on releases, unless the latest release is security related, which it figures out by reading the release notes.
I ran watchtowerr before, but I think this is a smarter way to do it.
Python environment was so brittle, that a solution was found: pack dependencies into "envs" of various kinds. Disk space is cheap, after all (ahem). Now it's time to pay the bill for that approach...
For me, this comment actually bolsters the argument for containers imo. It's a lot easier to rebuild a system image and redeploy it out across a bunch of apps than it is to update a bunch of VMs (maybe ansible/puppet makes it moot). Idk
No, it's a reference/joke to the old controversy regarding master/slave naming in computer circles. I don't know how far back that controversy goes, I probably heard about it about a decade ago.
Countless and countless, no, millions of male developers felt discriminated against whenever someone called it Man-in-the-middle. This went on unaccounted for for decades! Finally we’re being seen!
Not to mention all the women who were misogynisticly attacked by assuming women can’t be hackers.
Finally justice. It’s very important that we’re getting our priorities right when talking about security vulnerabilities!
As a sentient cephalopod who has enjoyed hacking staff computers when I slip out of my tank at the National Aquarium every night, I can only say it feels good to be seen. We're finally making progress on de-centering hominid perspectives in favor of a more diverse range of natural intelligences!
Worth noting that people on RedHat still haven't received proper updates, only a workaround that disables two Comodo root certificates that were used to sign the emudhra certificates.
Certificate authority (eMudhra) generated eight of its intermediate signing keys so badly that anyone can recover the private keys from the public certificates. That means anyone can mint a "valid" HTTPS certificate for any site, such as your bank, GitHub, or PyPI, and impersonate it.
87 comments
[ 0.22 ms ] story [ 12.1 ms ] thread* GLSA 202610-01
* https://security.gentoo.org/glsa/202610-01
* https://emudhra.we-have-a-problem.com/
The problem is Golang has it's own trust store. So you don't benefit from OS patching.
This CVE is literally just "versions of the Go deny list don't contain the eMuhdra revokation yet". Older versions of Go will still deny certs signed through the compromised certificate if the system store already has the update.
It's an or situation, not and.
Reminder: Neither the CVE nor the linked go alert seem to say that you have to recompile and redeploy your application with the new go version in order to take advantage of this change. Just updating the tool chain and go stdlib isn't enough, because this stuff gets baked into the resultant binary. This is unlike, say, python, Ruby, or java where updating the runtime may be sufficient, depending on your development and deployment model.
If you think "that's weird to see such a small number in key generation" than you're one step ahead of whoever generated that key.
Unfortunately, unlike with RSA, small primes are not apparent in elliptic cryptography.
https://xkcd.com/221/
What a weird comparison...
The very urgent uv/certifi/etc releases (and yet-to-be-done bun release) are about removing the compromised CAs as described here:
https://emudhra.we-have-a-problem.com/
In other words, that software bundled the compromised certs into the binary, so upgrading it is the only way to remove them.
This is about Go proactively blocking intermediates. Which shouldn't strictly be necessary as long as your OS has removed or distrusted the CAs (on my laptop, macOS has done that, although it seems like it did so in a way not all tools have access to; for example, rustls-platform-verifier respects it, but rustls-webpki still loads the bad CAs from the system trust store).
edit: forgot I can't use code blocks on HN
Here is the original story: https://news.ycombinator.com/item?id=50166579
# cat /usr/local/sbin/ca-certificates-list-active
# cat /usr/local/sbin/ca-certificates-reconfigure # cat /usr/local/sbin/ca-certificates-invalidate-all ps. I did bit of editing, I didn't expect Tab to be ignored when pasting here.https://discuss.python.org/t/information-for-python-users-re...
Takes about 20 seconds. Depending if you need to hit enter.
Node 26.3 → 26.12.1 Homebrew’s CA bundle, certifi and OpenSSL are updated, and so are Python 3.13 and 3.14 (3.13.17 and 3.14.9). uv 0.10.9 → 0.13.5. python.org Python 3.13: pip 26.2.2, installed from PyPI’s wheel with its checksum checked, then certifi 2026.10.19.
It also checked some of the other recent vulnerabilities like LiteLLM (already updated).
It went OK this time. There's no guarantee that it'll go OK every time, for every thing.
All I'm saying is that understanding how to maintain the systems that you are responsible for maintaining is an important thing, and outsourcing that understanding is very dangerous.
Awwww. It is like talking to a dev in 2010. Ok. So, there are machines now smarter than you. You are the problem. You are the thing that adds errors. "understanding how to maintain" No, that is over. sorry. As a human, you are too slow, too dumb to compete.
When a CVE comes out, the patch needs to be applied across the company in minutes. YOU cannot do this 2010 dev dude. Put down the Puppet files. Let go of the python PR.
i highly suggest you forget about containers, learn about systemd unit file hardening, and then you only have to play sysadmin to your base os and the binary for the program you want to run.
Then we layered _another_ level of package management on top with Flatpak etc.
I don’t think anyone has _really_ been - in practice - able to understand how many versions of Python (or shells or ruby or Perl etc…) are installed on any system for a decade or two now.
[Yes, I use all these things - it’s so hard _not_ to and still use modern software or participate in modern software development…]
I ran watchtowerr before, but I think this is a smarter way to do it.
* Take the containers offline for the time being until you know what to do
* If it's important for your that they keep running, still take them offline and put them in a VPN this weekend
* Use renovate in the future to automatically update your containers
Monster?
https://www.linuxfoundation.org/blog/blog/master-slave-and-t...
(Mallory-in-the-middle is OK too.)
Countless and countless, no, millions of male developers felt discriminated against whenever someone called it Man-in-the-middle. This went on unaccounted for for decades! Finally we’re being seen!
Not to mention all the women who were misogynisticly attacked by assuming women can’t be hackers.
Finally justice. It’s very important that we’re getting our priorities right when talking about security vulnerabilities!
Eve would like to have a word with you. I haven't heard of Heidi before... but she's apparently one of the cast.
https://en.wikipedia.org/wiki/Alice_and_Bob#Cast_of_characte...
/s
I absolutely love monster-in-the-middle. Big round of applause to whoever thought of that.
https://access.redhat.com/security/vulnerabilities/RHSB-2026... - "Ongoing"
We pay good money for their highest support tier and they are almost always the latest to bring a needed update.
Can't exactly remember what it was but it has happened before. It's a shame.
https://ftp.osuosl.org/pub/slackware/slackware64-15.0/Change...
To check, from keks24:
Certificate authority (eMudhra) generated eight of its intermediate signing keys so badly that anyone can recover the private keys from the public certificates. That means anyone can mint a "valid" HTTPS certificate for any site, such as your bank, GitHub, or PyPI, and impersonate it.
Much better explanation here
https://cycle.io/blog/2026-intermediate-ca-compromise
This is the Go version of the initial HN post https://news.ycombinator.com/item?id=50166579