** Description changed:
[Impact]
There are two memory leaks in the sssd-kcm package in Ubuntu 24.04 (Noble).
The problem happens when users login or renew tickets. The struct sss_sec_ctx
stays in memory and does not clean up.
Both are already patched upstream, and applied to the sssd-2-9-4 branch.
Applying these backports into Noble's package can prevent the memory
leaks from affecting Ubuntu users. Both patches are already in Resolute
and Stonking, since they are based on 2.12.0.
PR #7823 - https://github.com/SSSD/sssd/pull/7823
PR #7834 - https://github.com/SSSD/sssd/pull/7834
+ [Test Plan]
+
+ Install dependencies and set up:
+
+ ```
+ # 1. Install deps
+ apt update && apt install -y krb5-kdc krb5-user krb5-admin-server sssd-kcm
+
+ # When prompted, put in TEST.COM, localhost, and localhost for krb5.
+
+ sleep 2
+
+ # 2. Create the database
+ kdb5_util create -s -P password123
+ sleep 2
+ systemctl restart krb5-kdc
+
+ # 3. Create test users
+ useradd -m testkcm0
+ useradd -m testkcm1
+
+ # 4. Create users and keytabs
+ mkdir -p /etc/kcmtest/
+ for i in {0..1}; do
+ kadmin.local -q "addprinc -randkey testkcm$i"
+ kadmin.local -q "ktadd -k /etc/kcmtest/$i.keytab testkcm$i"
+ chown testkcm$i /etc/kcmtest/$i.keytab
+ done
+ ```
+
+ Observe the memory leak:
+
+ ```
+ #!/bin/bash
+
+ # Launch User 0 Loop
+ sudo -u testkcm0 bash -c '
+ export KRB5CCNAME=KCM:
+ while :; do
+ kinit -k -t /etc/kcmtest/0.keytab testkcm0
+ kdestroy -A
+ sleep 0.1
+ done' &
+
+ # Launch User 1 Loop
+ sudo -u testkcm1 bash -c '
+ export KRB5CCNAME=KCM:
+ while :; do
+ kinit -k -t /etc/kcmtest/1.keytab testkcm1
+ kdestroy -A
+ sleep 0.1
+ done' &
+
+ watch -n 10 "ps -C sssd_kcm -o pid=,rss=,etime="
+ wait
+ ```
+
+ On the unpatched version, the memory leak causes the memory usage to
+ rise every time.
+
+ On the patched version, memory might rise for the first few checks, but
+ will soon level off.
+
+ [Where problems could occur]
+
+ Patch 1:
+
+ It is conceivable, but very unlikely, that the first patch introduces a
+ use after free. Currently, this is impossible as the data isn't modified
+ below, but refactors to use a direct pointer instead of a copy could
+ result in memory corruption.
+
+ Patch 2:
+
+ It is unlikely this will cause any regression. This patch simply ensures
+ the memory is freed on every control path. Previously, memory was not
+ freed in abnormal exits.
+
[Additional Info]
Commits upstream (master branch):
https://github.com/SSSD/sssd/commit/7f1b7c9689827df92e8b2166423d4e80688dbacb
https://github.com/SSSD/sssd/commit/9e72bc242b600158d7920b2b98644efa42fd1ffa
Backports to the sssd-2-9-4 branch:
https://github.com/SSSD/sssd/commit/58547f020a634cdda4aad0ee350aeb4a894f6669
https://github.com/SSSD/sssd/commit/85469a77c232f2fe0b95376fe51e3900ab9e9bf0
** Changed in: sssd (Ubuntu Noble)
Status: Confirmed => In Progress
** Changed in: sssd (Ubuntu Questing)
Status: Confirmed => In Progress
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2150664
Title:
[SRU] Backport fixes for sssd-kcm memory leak (PR #7823, #7834) in
Noble
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sssd/+bug/2150664/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs