Overview
John and Georgia are at the Linux Security Summit presenting on some long
awaited developments in AppArmor and we give you all the details in a sneak peek
preview as well as some of the other talks to look out for, plus we cover
security updates for NSS, Squid, Apache, libvirt and more and we put out a call
for testing of a pending AppArmor security fix too.
This week in Ubuntu Security Updates
[USN-6727-1, USN-6727-2] NSS vulnerabilities + regression (01:02)
3 CVEs addressed in Focal (20.04 LTS), Jammy (22.04 LTS), Mantic (23.10)CVE-2023-6135 CVE-2023-5388 CVE-2023-4421 All various different timing side channels - two were effectively the samesince the original fix was incomplete - mishandling of padding in PKCS#1 (RSA)
certificate checks - possible to infer the length of the encrypted message and
other properties to eventually infer secret key by sending a large number of
attacker-chosen ciphertexts, the other when using various NIST
curves (elliptic curve cryptography)
Original fix caused some issues with loading NSS security modules so publisheda second update to fix that on focal+jammy
[USN-6728-1, USN-6728-2] Squid vulnerabilities + regression (02:05)
5 CVEs addressed in Focal (20.04 LTS), Jammy (22.04 LTS), Mantic (23.10)CVE-2024-25617 CVE-2024-25111 CVE-2024-23638 CVE-2023-5824 CVE-2023-49288 All found by the same researcher (Joshua Rogers) who performed a securityaudit of Squid back in 2021 -
https://megamansec.github.io/Squid-Security-Audit/ - first mentioned by us in
[USN-6500-1] Squid vulnerabilities in Episode
214 back in December 2023
Then we mentioned how squid was under-resourced and so hadn’t be able to fixall the identified issues - over time upstream has published fixes for more
issues and we are now incorporating those into squid in Ubuntu
All of these were various DoS issues where could either cause squid to crashor stop responding
One of these fixes was problematic and caused squid to crash itself so was reverted[USN-6729-1] Apache HTTP Server vulnerabilities (03:01)
3 CVEs addressed in Focal (20.04 LTS), Jammy (22.04 LTS), Mantic (23.10)CVE-2024-27316 CVE-2024-24795 CVE-2023-38709 2 different issues that could result in HTTP request splitting attacks -similar to HTTP request smuggling which is a more specific version of this
attack, relies on different parsing/interpretation of HTTP request messages by
an intermediate (load balancer/proxy/WAF etc.) to split a single HTTP request
into multiple HTTP requests at the backend - allowing to bypass restrictions
along the way - usually involves the use of injected CR/LF/TAB/SPC etc in
headers
Plus memory-based DoS in handling of HTTP/2 - client could just keep sendingmore headers, buffered by the server so it can generate an informative
response, until it exhausts memory
limit to just 100 headers before bailing with such an error[USN-6730-1] Apache Maven Shared Utils vulnerability
1 CVEs addressed in Trusty ESM (14.04 ESM), Xenial ESM (16.04 ESM), Bionic ESM (18.04 ESM), Focal (20.04 LTS), Jammy (22.04 LTS)CVE-2022-29599 [USN-6731-1] YARD vulnerabilities
3 CVEs addressed in Xenial ESM (16.04 ESM), Bionic ESM (18.04 ESM), Focal (20.04 LTS), Jammy (22.04 LTS), Mantic (23.10)CVE-2024-27285 CVE-2019-1020001 CVE-2017-17042 [USN-6732-1] WebKitGTK vulnerabilities
8 CVEs addressed in Jammy (22.04 LTS), Mantic (23.10)CVE-2024-23284 CVE-2024-23280 CVE-2024-23263 CVE-2024-23254 CVE-2024-23252 CVE-2023-42956 CVE-2023-42950 CVE-2023-42843 [USN-6733-1] GnuTLS vulnerabilities (04:57)
2 CVEs addressed in Focal (20.04 LTS), Jammy (22.04 LTS), Mantic (23.10)CVE-2024-28835 CVE-2024-28834 Timing side-channel in ECDSACrash when verifying crafted PEM bundles -> DoS[USN-6734-1] libvirt vulnerabilities (05:13)
3 CVEs addressed in Focal (20.04 LTS), Jammy (22.04 LTS), Mantic (23.10)CVE-2024-2496 CVE-2024-2494 CVE-2024-1441 off-by-one in handling of udev interface names - unpriv client could thenabuse this to send crafted udev data to the libvirt daemon, triggering a crash -> DoS
NULL ptr deref in same code - race condition, need to detach a host interfacewhilst calling into the function
Crash in RPC handling - pass a negative length value, would then try andallocate a negative number of array indices - uses underlying g_new0() from
glib which expects an unsigned value -> tries to allocate an extremely large
amount of memory -> crash
[USN-6735-1] Node.js vulnerabilities
3 CVEs addressed in Trusty ESM (14.04 ESM), Xenial ESM (16.04 ESM), Bionic ESM (18.04 ESM), Focal (20.04 LTS), Jammy (22.04 LTS), Mantic (23.10)CVE-2023-30590 CVE-2023-30589 CVE-2023-30588 [USN-6736-1] klibc vulnerabilities (06:33)
4 CVEs addressed in Trusty ESM (14.04 ESM), Xenial ESM (16.04 ESM), Bionic ESM (18.04 ESM), Focal (20.04 LTS), Jammy (22.04 LTS), Mantic (23.10)CVE-2022-37434 CVE-2018-25032 CVE-2016-9841 CVE-2016-9840 All old memory corruption issues in zlib - vendored within klibc[USN-6724-2] Linux kernel vulnerabilities
12 CVEs addressed in Jammy (22.04 LTS), Mantic (23.10)CVE-2023-52438 CVE-2023-52439 CVE-2023-52435 CVE-2023-52436 CVE-2023-52434 CVE-2024-23850 CVE-2024-22705 CVE-2023-6610 CVE-2024-23851 CVE-2023-52429 CVE-2023-50431 CVE-2023-46838 [USN-6725-2] Linux kernel (AWS) vulnerabilities
46 CVEs addressed in Focal (20.04 LTS), Jammy (22.04 LTS)CVE-2023-52470 CVE-2023-52469 CVE-2023-52451 CVE-2023-52610 CVE-2023-52441 CVE-2023-52467 CVE-2023-52449 CVE-2024-26591 CVE-2023-52458 CVE-2024-26597 CVE-2024-26633 CVE-2023-52436 CVE-2023-52444 CVE-2024-26589 CVE-2024-26586 CVE-2024-26598 CVE-2023-52612 CVE-2023-52439 CVE-2024-26631 CVE-2023-52442 CVE-2023-52443 CVE-2023-52480 CVE-2023-52438 CVE-2023-52454 CVE-2023-52456 CVE-2023-52464 CVE-2023-52457 CVE-2023-52448 CVE-2023-52609 CVE-2023-52462 CVE-2023-52445 CVE-2023-52463 CVE-2024-24860 CVE-2024-23850 CVE-2024-22705 CVE-2024-23851 CVE-2023-52429 CVE-2023-52340 CVE-2023-46838 CVE-2023-3867 CVE-2023-38431 CVE-2023-38430 CVE-2023-38427 CVE-2023-32258 CVE-2023-32254 CVE-2023-1194 [USN-6726-2] Linux kernel (IoT) vulnerabilities
23 CVEs addressed in Focal (20.04 LTS)CVE-2023-52438 CVE-2023-52436 CVE-2023-52454 CVE-2023-52470 CVE-2023-52451 CVE-2023-52445 CVE-2023-52469 CVE-2023-52609 CVE-2023-52444 CVE-2023-52449 CVE-2024-26597 CVE-2024-26633 CVE-2023-52612 CVE-2023-52439 CVE-2023-52443 CVE-2023-52457 CVE-2023-52448 CVE-2023-52464 CVE-2024-0607 CVE-2024-23851 CVE-2023-52429 CVE-2023-52340 CVE-2023-46838 [USN-6726-3] Linux kernel (Xilinx ZynqMP) vulnerabilities
23 CVEs addressed in Focal (20.04 LTS)CVE-2023-52438 CVE-2023-52436 CVE-2023-52454 CVE-2023-52470 CVE-2023-52451 CVE-2023-52445 CVE-2023-52469 CVE-2023-52609 CVE-2023-52444 CVE-2023-52449 CVE-2024-26597 CVE-2024-26633 CVE-2023-52612 CVE-2023-52439 CVE-2023-52443 CVE-2023-52457 CVE-2023-52448 CVE-2023-52464 CVE-2024-0607 CVE-2024-23851 CVE-2023-52429 CVE-2023-52340 CVE-2023-46838 Goings on in Ubuntu Security Community
Linux Security Summit NA 2024 (07:22)
https://events.linuxfoundation.org/linux-security-summit-north-america/Unprivileged Access Control in AppArmor - John Johansen & Georgia Garcia, Canonicalhttps://static.sched.com/hosted_files/lssna24/97/AppArmor%20-%20Unprivileged%20Application%20Policy.pdfFriday 19th @ 9.15am PDT - live stream at https://www.youtube.com/watch?v=S-RQZGRoQFYAppArmor - MAC - sysadmin defines policyAllowing applications to define and load their own policyAPIs in libapparmor to allow this to be done from static policy OR to build up policy over timepolicy is compiled in userspace and loaded into the kernel as usualTo then stop a compromised application from unloading its policy, can markit immutable so it can’t be further modified / removed
Any further restrictions though can then be stacked against the immutablepolicy to say allow it to be confined futher
On kernel sidesysctl to allow/deny applications to load their own policychecks on the amount of memory able to be used to avoid apps DoSing systemverification of compiled policy by kernel state machinepolicy only applies to the task and its childrenVarious complexities in handling credentials/labels across tasks(ie. processes) and how these interact with the userspace
processes/threads etc
Also still have to resolve whether to use prctl vs syscall as theinterface since we can’t use the LSM syscalls
May result in an AppArmor specific syscallBut for now just using a prctlApplication profiles then stack against any relevant system policyie. if there is system policy, and policy loaded by the application itself is bounded by the system policyDemo of implementing pledge() and unveil() from OpenBSDpledge is similar to seccomp() on linux - allows an application torestrict what it can do by declaring what subsystems it should be allowed
access to “promises”
stdio, inet, bpf, unix, audio, video and many othersmap these to equivalent AppArmor permissions (although this is not a perfect mapping but WIP)also since this is at the LSM layer, we are not necessarily blockingsyscalls as is done by pledge (since it is more akin to seccomp)
but can use seccomp to plug any gapsto fully emulate this also need to emulate the return value - since onOpenBSD if the application violates the promise, deliver a SIGABRT -
whereas LSMs return EACCES
can do this via a new profile flag called kill along with the associated signal to deliverfurther complications to this since not always SIGABRT, sometimes is an errno (ENOSYS/EACCES) tooextend apparmor policy to allow to specify priorities of what action should be taken in various casescan use the aforementioned immutable profile flag and stacking to then implement the promise reduction feature of pledge()unveil is used to remove visibility of parts of the file-systemmaps quite cleanly to apparmor file rulesFull video of the session should be available soonLots of other interesting talks:Stacked LSMs and User Space - Casey Schaufler, The Smack ProjectLSM syscalls and associated liblsm to provide an easier API plus emulation for older systemshttps://static.sched.com/hosted_files/lssna24/1a/2024-04-LSSNA-liblsm.pdfMitigating Integer Overflow in C - Kees Cook, GoogleLKSPP - latest efforts to mitigate integer overflows within the kernelthrough the use of compiler sanitizers
https://static.sched.com/hosted_files/lssna24/fb/Mitigating%20Integer%20Overflow%20in%20C.pdfEnhancing Kernel Bug Discovery with Large Language Models - Zahra Tarkhani, MicrosoftSandBox Mode (SBM) - New Execution Mode Between Kernel and User Space - Petr Tesarik, Self-employedUpcoming AppArmor Security update for CVE-2016-1585
https://discourse.ubuntu.com/t/upcoming-apparmor-security-update-for-cve-2016-1585/44268/1https://bugs.launchpad.net/apparmor/+bug/1597017Get in contact
#ubuntu-security on the Libera.Chat IRC networkubuntu-hardened mailing listSecurity section on discourse.ubuntu.com@[email protected], @ubuntu_sec on twitter