OpenRung
A free, privacy-first relay network that helps you reach the open internet. Open source and nonprofit-run.
翻訳待ち
One free command checks your machine against 10 live incidents (the compromised eMudhra keys, PHP, GitLab, Plex, LiteLLM, WordPress plugins and more), says “could not be tested” out loud, and shows th
翻訳待ち
セキュリティJavaScript · ShellGitHub @deimos-hqオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Does the wrong key still turn? A free, open-source check of your own machine against named security incidents, starting with the compromised eMudhra CA keys. Runs locally; sends no telemetry or results. From Deimos AI LLC.
翻訳待ち
Loading the full README.
Read the full README ↗Does the wrong key still turn?
When a certificate authority's keys leak, browsers update within hours. The rest of your machine doesn't. curl, Node, Python and every project's own certificate bundle each keep their own list of who to trust, and each has to be fixed on its own. Wardlatch tells you which ones still trust the compromised keys, and checks this week's other leaks too.
npx wardlatch@latest
Run it from your home folder (cd ~ first), not from inside a project: npx also starts Wardlatch with the current
project's own node_modules/.bin/node if it has one, and applies its .npmrc; Wardlatch can't undo either. Use @latest: a bare npx wardlatch runs any copy already installed globally or in the current project, whatever its version (and npm older than 9.6.5 also reuses a copy npx cached earlier). If you installed Wardlatch, update that copy too (npm install -g wardlatch@latest for a global copy, npm install wardlatch@latest in the project), or remove it. wardlatch --help prints the version without running any check.
Runs on macOS and Linux, tested on both in CI. Windows is not supported yet: some checks don't look in Windows locations, so a Windows run can miss what it should find. The trust check and the program checks say UNKNOWN there.
SAFE node 26.12.0 /opt/homebrew/bin/node
EXPOSED node 26.12.0 /usr/local/bin/node trusts 6/12
fix: update Node.js to 26.12.1, 24.22.1 or 22.23.4 or later ...
SAFE curl 8.7.1 /usr/bin/curl
SAFE certifi 2026.10.19 ~/Development/app/.venv
11 safe · 1 exposed · 0 could not be tested
It doesn't compare version numbers. It asks each runtime to open a real, verified TLS connection to public test hosts
whose certificates are signed with the compromised keys, the way your own code would, with your own trust settings
(CA files, proxies; a setting that would load code into the test, such as NODE_OPTIONS --require, is not passed, and
the run says so in an UNKNOWN line).
If a runtime connects, it still trusts them. Two exceptions keep it from running what it checks: Python is started
with -I -S, so a .pth file or sitecustomize.py that changes its trust (pip-system-certs, for example) is not
applied, and, as before, the certifi in the own site-packages of a Python on your PATH is not tested yet (a
virtual environment's is); and every program runs from /, so a version manager picks your default, not the current project's.
Two checks keep the answer honest:
node, curl and python3 on your PATH, the ones your shell runs, and any later copy that is a compiled
program (a later copy that is a script is named, not run; node_modules/.bin folders and relative entries are
dropped first, so a project can't have Wardlatch run its programs), plus the operating system's own trust: macOS's
networking stack (Safari and Apple's apps) and, on Linux, the distribution's CA bundle (tested with curl; with no curl, python3 tests it, and with neither it is UNKNOWN)REQUESTS_CA_BUNDLE names, which requests and pip use in place of certifi (tested with curl)pip/_vendor/certifi/cacert.pem: older pips, or on Python 3.9 or older, use it for every download;
pip 24.2 and later on Python 3.10 or later only with --use-deprecated=legacy-certs) in the machine's
Python folders, and the certifi inside apps' own Pythons (Blender, Unity's Emscripten Python), read as files, by key:
a REVIEW line for each that still holds a withdrawn rootcert.pem left in /etc/ssl:
a REVIEW line for each that still holds a withdrawn root, because Apple says not to restore onecertifi) under ~/Development, ~/code, ~/src, ~/projects, ~/Projects,
~/dev, ~/work, ~/Sites, /var/www, /srv/www and /Library/WebServer/Documents, or the folders you give with --paths.
A bundle is tested with curl only where that curl keeps to the CA file it is given; Apple's doesn't (it falls back to
the system's trust, curl issue #12604, 2023), so on a Mac the bundle is read as a file and judged by key--no-containers skips them. Nothing is written into a container.This is the beginning of the README. Read the rest at the original. Read the full README ↗