kanidm: don't log provisioned passwords via instrumentation

This also make sure to test this in the related nixos test.

Fixes: CVE-2025-30205
Reported-By: Katherina Walshe-Grey <qenya@qenya.tel>
This commit is contained in:
oddlama
2025-03-21 17:15:47 +01:00
parent dbe55c5905
commit df0193b33f
4 changed files with 10 additions and 3 deletions

View File

@@ -306,6 +306,10 @@ import ./make-test-python.nix (
provision.succeed('${specialisations}/credentialProvision/bin/switch-to-configuration test')
provision_login("${provisionIdmAdminPassword}")
# Make sure neither password is logged
provision.fail("journalctl --since -10m --unit kanidm.service --grep '${provisionAdminPassword}'")
provision.fail("journalctl --since -10m --unit kanidm.service --grep '${provisionIdmAdminPassword}'")
# Test provisioned admin pw
out = provision.succeed("KANIDM_PASSWORD=${provisionAdminPassword} kanidm login -D admin")
assert_contains(out, "Login Success for admin")

View File

@@ -19,7 +19,8 @@ index 40c18777f..40d553b40 100644
#[instrument(
level = "info",
skip(self, eventid),
- skip(self, eventid),
+ skip(self, password, eventid),
fields(uuid = ?eventid)
)]
pub(crate) async fn handle_admin_recover_account(

View File

@@ -19,7 +19,8 @@ index 420e72c6c..5c4353116 100644
#[instrument(
level = "info",
skip(self, eventid),
- skip(self, eventid),
+ skip(self, password, eventid),
fields(uuid = ?eventid)
)]
pub(crate) async fn handle_admin_recover_account(

View File

@@ -19,7 +19,8 @@ index 420e72c6c..5c4353116 100644
#[instrument(
level = "info",
skip(self, eventid),
- skip(self, eventid),
+ skip(self, password, eventid),
fields(uuid = ?eventid)
)]
pub(crate) async fn handle_admin_recover_account(