OverviewJohn and Georgia are at the Linux Security Summit presenting on some longawaited developments in AppArmor and we give you all the details in a sneak peekpreview as well as some of the other talks to look out for, plus we coversecurity updates for NSS, Squid, Apache, libvirt and more and we put out a callfor testing of a pending AppArmor security fix too.
This week in Ubuntu Security Updates86 unique CVEs addressed
[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 andother properties to eventually infer secret key by sending a large number ofattacker-chosen ciphertexts, the other when using various NISTcurves (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 Episode214 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 moreissues 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 thisattack, relies on different parsing/interpretation of HTTP request messages byan intermediate (load balancer/proxy/WAF etc.) to split a single HTTP requestinto multiple HTTP requests at the backend - allowing to bypass restrictionsalong the way - usually involves the use of injected CR/LF/TAB/SPC etc inheaders * Plus memory-based DoS in handling of HTTP/2 - client could just keep sendingmore headers, buffered by the server so it can generate an informativeresponse, 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 ECDSA * Crash 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() fromglib which expects an unsigned value -> tries to allocate an extremely largeamount 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 CommunityLinux Security Summit NA 2024 (07:22)* https://events.linuxfoundation.org/linux-security-summit-north-america/
* Unprivileged Access Control in AppArmor - John Johansen & Georgia Garcia, Canonical
+ https://static.sched.com/hosted_files/lssna24/97/AppArmor%20-%20Unprivileged%20Application%20Policy.pdf
+ Friday 19th @ 9.15am PDT - live stream at https://www.youtube.com/watch?v=S-RQZGRoQFY
+ AppArmor - MAC - sysadmin defines policy
+ Allowing applications to define and load their own policy
- APIs in libapparmor to allow this to be done from static policy OR to build up policy over time
- policy is compiled in userspace and loaded into the kernel as usual
- To 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 side
* sysctl to allow/deny applications to load their own policy
* checks on the amount of memory able to be used to avoid apps DoSing system
* verification of compiled policy by kernel state machine
* policy only applies to the task and its children
- Various complexities in handling credentials/labels across tasks(ie. processes) and how these interact with the userspaceprocesses/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 syscall
* But for now just using a prctl
- Application profiles then stack against any relevant system policy
- ie. if there is system policy, and policy loaded by the application itself is bounded by the system policy
+ Demo of implementing pledge() and unveil() from OpenBSD
- pledge is similar to seccomp() on linux - allows an application torestrict what it can do by declaring what subsystems it should be allowedaccess to “promises”
* stdio, inet, bpf, unix, audio, video and many others
* map 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 gaps
* to 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 deliver
* further complications to this since not always SIGABRT, sometimes is an errno (ENOSYS/EACCES) too
* extend apparmor policy to allow to specify priorities of what action should be taken in various cases
* can 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-system
* maps quite cleanly to apparmor file rules
+ Full video of the session should be available soon
* Lots of other interesting talks:
+ Stacked LSMs and User Space - Casey Schaufler, The Smack Project
- LSM syscalls and associated liblsm to provide an easier API plus emulation for older systems
- https://static.sched.com/hosted_files/lssna24/1a/2024-04-LSSNA-liblsm.pdf
+ Mitigating Integer Overflow in C - Kees Cook, Google
- LKSPP - 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.pdf
+ Enhancing Kernel Bug Discovery with Large Language Models - Zahra Tarkhani, Microsoft
+ SandBox Mode (SBM) - New Execution Mode Between Kernel and User Space - Petr Tesarik, Self-employed
Upcoming AppArmor Security update for CVE-2016-1585* https://discourse.ubuntu.com/t/upcoming-apparmor-security-update-for-cve-2016-1585/44268/1 * https://bugs.launchpad.net/apparmor/+bug/1597017
Get in contact* security@ubuntu.com * #ubuntu-security on the Libera.Chat IRC network * ubuntu-hardened mailing list * Security section on discourse.ubuntu.com * @ubuntusecurity@fosstodon.org, @ubuntu_sec on twitter