summaryrefslogtreecommitdiffstats
path: root/tools/lib/python/kdoc
diff options
context:
space:
mode:
authorMassimiliano Pellizzer <massimiliano.pellizzer@canonical.com>2026-01-13 09:09:43 +0100
committerJohn Johansen <john.johansen@canonical.com>2026-03-09 16:05:42 -0700
commitab09264660f9de5d05d1ef4e225aa447c63a8747 (patch)
treeba08e540707d5d3fc5a437db8247ecfb357fc646 /tools/lib/python/kdoc
parente38c55d9f834e5b848bfed0f5c586aaf45acb825 (diff)
downloadlinux-ab09264660f9de5d05d1ef4e225aa447c63a8747.tar.gz
linux-ab09264660f9de5d05d1ef4e225aa447c63a8747.zip
apparmor: replace recursive profile removal with iterative approach
The profile removal code uses recursion when removing nested profiles, which can lead to kernel stack exhaustion and system crashes. Reproducer: $ pf='a'; for ((i=0; i<1024; i++)); do echo -e "profile $pf { \n }" | apparmor_parser -K -a; pf="$pf//x"; done $ echo -n a > /sys/kernel/security/apparmor/.remove Replace the recursive __aa_profile_list_release() approach with an iterative approach in __remove_profile(). The function repeatedly finds and removes leaf profiles until the entire subtree is removed, maintaining the same removal semantic without recursion. Fixes: c88d4c7b049e ("AppArmor: core policy routines") Reported-by: Qualys Security Advisory <qsa@qualys.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Reviewed-by: Georgia Garcia <georgia.garcia@canonical.com> Reviewed-by: Cengiz Can <cengiz.can@canonical.com> Signed-off-by: Massimiliano Pellizzer <massimiliano.pellizzer@canonical.com> Signed-off-by: John Johansen <john.johansen@canonical.com>
Diffstat (limited to 'tools/lib/python/kdoc')
0 files changed, 0 insertions, 0 deletions