3.1.6
What's Changed
Authentication and MFA
- Added automatic MFA fallback when the MFA method configured in
himmelblau.confis not available for the user account. Himmelblau now retries without forcing that method so Entra ID can use the account’s default available MFA option, preventing repeated password prompts and infinite retry loops. Fixes #1390. - Applied the MFA fallback path consistently across enrollment, Hello PIN reauthentication, and password-based authentication flows.
- Added administrator-visible warning logs when Himmelblau falls back from an unavailable configured MFA method.
Hello, TOTP, and Token Cache Handling
- Fixed stale Hello-bound TOTP and token cache entries after a Hello PIN change. When a replacement Hello key is provisioned, associated Hello PRT, refresh token, and TOTP secrets are now cleared so the next login can re-enroll cleanly instead of attempting to decrypt data sealed to the old key. Fixes #1393.
- Extended full Hello cache clearing to remove Hello refresh token and Hello TOTP HSM entries, preventing stale secrets from surviving after the underlying Hello key material has been deleted.
- Tightened transaction handling during Hello PIN replacement so cache changes are committed only after the provider update succeeds.
Reliability and Networking
- Added a NetworkManager dispatcher hook that asynchronously restarts
himmelblaud.servicewhen real network interfaces go down. This mitigates cases where suspend/resume, dock removal, or network loss could leave PAM waiting indefinitely on a deadlocked daemon. Addresses #1206. - The dispatcher hook ignores loopback, container, bridge, tunnel, and other virtual interfaces to avoid unnecessary daemon restarts.
SSH Authentication Compatibility
- Renamed the packaged SSHD drop-in from
himmelblau.confto30-himmelblau.confso it loads before Fedora/RHEL’s50-redhat.conf. This ensures Himmelblau’s keyboard-interactive SSH authentication settings are applied correctly on those systems. Fixes #1348. - Applied the same SSHD drop-in naming convention to Debian packages for consistency across distributions.
Security and Credential Handling
- Changed HSM PIN credential sealing so the encrypted credential is bound to the TPM but no longer bound to PCR7. This avoids failures caused by Secure Boot certificate changes that would otherwise alter PCR7 and prevent the HSM PIN from unsealing.
- Added seamless migration from the previous
hsm-pin.enccredential to the newhsm-pin-nopcr.enccredential during HSM PIN initialization. - Updated systemd service generation to load the new
hsm-pin-nopcr.enccredential path.
Desktop Compatibility
- Added GNOME Shell 50 support for the QR greeter extension, restoring QR prompt handling and security-key image rendering on newer GNOME environments such as Ubuntu 26.04.
Packaging / Build / CI
- Packaged the new NetworkManager dispatcher script for Debian and RPM-based builds.
- Bumped the workspace version to
3.1.6. - Updated
libhimmelblauto0.8.20. - Updated Rust dependencies including
ldap3_proto0.6.2,openssl0.10.80,rand0.10.1, andtonic0.14.6. - Added a local
ldap3_protooverride and updated cargo-vet supply-chain metadata for the backport. - Fixed fuzz CI by installing a pinned
cargo-fuzzversion instead of relying on the previous locked install behavior.
Documentation
- No dedicated user-facing documentation changes were included in this release.
Known Issues
- The NetworkManager dispatcher restart is a mitigation for #1206 rather than a full daemon-level deadlock fix. Systems that do not use NetworkManager, or failures not associated with real interface down events, may still require manual recovery.
Full Changelog: 3.1.5...3.1.6