What's Changed
Fixed
- Duplicate webhook notifications —
certificate.expiring(and other events) could be delivered twice with an identical payload while the delivery log showed a single event. Webhook deliveries are now claimed atomically (exactly-once) and the background scheduler runs in a single process, so each delivery is sent once even under concurrent workers (#139).
Security
- Updated
cryptographyto 48.0.1 (GHSA-537c-gmf6-5ccf, vulnerable OpenSSL in wheels) and forcedwsto 8.21.0 (CVE-2026-48779, WebSocket DoS).
📜 Recent release history (last 2 versions)
[2.173] - 2026-06-17
Changed
- SSO identity is now the directory's stable identifier, never the email — OIDC
sub, SAML persistentNameID, or LDAPentryUUID/objectGUID(configurable per provider, auto-detected by default). Accounts are recognised across username/email changes, and the email is never an authentication key (removes account-takeover risk). An SSO login whose email matches a local account now provisions a separate SSO account instead of erroring; an administrator can still merge them via Link to SSO, which no longer renames the local username (#136, #138). - Backups — the backup list is paginated, searchable and sortable, with multi-select bulk delete, a usage summary (count, total size, free disk) and a Clean up now action. Retention is always visible (no longer hidden behind the automatic-backup toggle) and is enforced daily even when automatic backups are off.
Fixed
- Backups could fill the disk — pre-migration database snapshots are now capped to the most recent few, and backup retention runs as its own scheduled task (previously it only ran after a scheduled backup, so manual backups accumulated indefinitely).
[2.172] - 2026-06-16
Fixed
- SSO login with an email that already exists — an SSO (LDAP/OAuth2/SAML) login whose email matches an existing account no longer returns an Internal Server Error. Instead of silently merging on email (an account-takeover risk) or creating a duplicate, the login is refused with a clear message, and an administrator can deliberately link the two from Users › Link to SSO (new
link-sso/unlink-ssoactions). One account per email is preserved (#136). - Key-recovery dual control is now configurable — a Settings › Security toggle enables/disables four-eyes control for private-key recovery, and
KEY_RECOVERY_DUAL_CONTROLin the service environment overrides it (an explicitfalse/0/nodisables it, and the toggle is shown read-only). Previously the setting could not be changed from the UI and the environment value was ignored (#137).
Full history: CHANGELOG.md
Installation
Docker (Recommended)
# From Docker Hub
docker pull neyslim/ultimate-ca-manager:2.174
# Or from GitHub Container Registry
docker pull ghcr.io/neyslim/ultimate-ca-manager:2.174
# Run
docker run -d -p 8443:8443 \
-e SECRET_KEY=$(openssl rand -hex 32) \
--name ucm neyslim/ultimate-ca-manager:2.174Debian/Ubuntu
wget https://github.com/NeySlim/ultimate-ca-manager/releases/download/v2.174/ucm_2.174_all.deb
sudo dpkg -i ucm_2.174_all.deb
sudo apt-get install -fFedora/RHEL
wget https://github.com/NeySlim/ultimate-ca-manager/releases/download/v2.174/ucm-2.174-1.fc43.noarch.rpm
sudo dnf install ./ucm-2.174-1.fc43.noarch.rpmSilent/Automated Install
# Skip firewall prompts for CI/automation
sudo UCM_PORT=8443 UCM_FIREWALL=no dpkg -i ucm_2.174_all.debDefault Credentials
- Username:
admin - Password:
changeme123
Change the password immediately after first login!
Documentation
- Installation Guide
- API Documentation