From 283f5a39807f330ed0bdb5ab618d666175cb2a00 Mon Sep 17 00:00:00 2001 From: <> Date: Thu, 16 Nov 2023 19:31:38 +0000 Subject: [PATCH] Deployed 50a81d4 with MkDocs version: 1.5.3 --- 404.html | 44 ++ index.html | 50 +- issues/CVE-2023-23583/index.html | 44 ++ issues/CVE-2023-4911/index.html | 44 ++ packages/glibc/index.html | 44 ++ packages/hardened_malloc/index.html | 46 +- packages/lkrg/index.html | 759 ++++++++++++++++++++++++++++ packages/microcode_ctl/index.html | 46 +- packages/openssh/index.html | 46 ++ packages/passwdqc/index.html | 757 +++++++++++++++++++++++++++ search/search_index.json | 2 +- sitemap.xml | 24 +- sitemap.xml.gz | Bin 284 -> 299 bytes 13 files changed, 1893 insertions(+), 13 deletions(-) create mode 100644 packages/lkrg/index.html create mode 100644 packages/passwdqc/index.html diff --git a/404.html b/404.html index c0b3116..81e7aac 100644 --- a/404.html +++ b/404.html @@ -365,6 +365,10 @@ + + + + @@ -448,6 +452,26 @@ +
  • + + + + + Extra package: lkrg + + + + +
  • + + + + + + + + +
  • @@ -483,6 +507,26 @@ + + + + + +
  • + + + + + Extra package: passwdqc + + + + +
  • + + + + diff --git a/index.html b/index.html index acc6bff..f774494 100644 --- a/index.html +++ b/index.html @@ -510,6 +510,10 @@ + + + + @@ -593,6 +597,26 @@ +
  • + + + + + Extra package: lkrg + + + + +
  • + + + + + + + + +
  • @@ -628,6 +652,26 @@ + + + + + +
  • + + + + + Extra package: passwdqc + + + + +
  • + + + + @@ -682,8 +726,8 @@

    Packages

    Extra packages (for EL8 and EL9)

    Extra packages (currently only for EL9)

    diff --git a/issues/CVE-2023-4911/index.html b/issues/CVE-2023-4911/index.html index 25b3cb5..e7af3d9 100644 --- a/issues/CVE-2023-4911/index.html +++ b/issues/CVE-2023-4911/index.html @@ -444,6 +444,10 @@ + + + + @@ -527,6 +531,26 @@ +
  • + + + + + Extra package: lkrg + + + + +
  • + + + + + + + + +
  • @@ -562,6 +586,26 @@ + + + + + +
  • + + + + + Extra package: passwdqc + + + + +
  • + + + + diff --git a/packages/glibc/index.html b/packages/glibc/index.html index 8efadff..e1487a8 100644 --- a/packages/glibc/index.html +++ b/packages/glibc/index.html @@ -376,6 +376,10 @@ + + + + @@ -539,6 +543,26 @@ +
  • + + + + + Extra package: lkrg + + + + +
  • + + + + + + + + +
  • @@ -574,6 +598,26 @@ + + + + + +
  • + + + + + Extra package: passwdqc + + + + +
  • + + + + diff --git a/packages/hardened_malloc/index.html b/packages/hardened_malloc/index.html index f6dce9e..503d8ef 100644 --- a/packages/hardened_malloc/index.html +++ b/packages/hardened_malloc/index.html @@ -16,7 +16,7 @@ - + @@ -376,6 +376,10 @@ + + + + @@ -547,6 +551,26 @@ +
  • + + + + + Extra package: lkrg + + + + +
  • + + + + + + + + +
  • @@ -582,6 +606,26 @@ + + + + + +
  • + + + + + Extra package: passwdqc + + + + +
  • + + + + diff --git a/packages/lkrg/index.html b/packages/lkrg/index.html new file mode 100644 index 0000000..3fe7afd --- /dev/null +++ b/packages/lkrg/index.html @@ -0,0 +1,759 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Extra package: lkrg - SIG/Security Wiki + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + + +
    +
    + + + + + + + + + + + + +

    Extra package: lkrg

    +

    EL8 and EL9

    +
      +
    • Version lkrg-0.9.7-4.el9_2.security
    • +
    • Based on upstream version 0.9.7
    • +
    +

    Package summary

    +

    LKRG, or Linux Kernel Runtime Guard, is a kernel module that performs runtime integrity checking of the Linux kernel and detection of security vulnerability exploits against the kernel.

    +

    More information is available on the LKRG homepage and in the documentation files included in the package.

    +

    Usage in Rocky Linux

    +

    Due to EL's kABI stability and the weak-modules mechanism, which this package uses, the same binary package of LKRG works across different kernel revisions/builds within the same EL minor release (e.g., 9.2). Once there's a new minor release (e.g., 9.2 is upgraded to 9.3), we'll provide a new build of LKRG accordingly.

    +

    Installing the package does not automatically start LKRG nor enable it to start on system bootup. To start LKRG please use:

    +
    systemctl start lkrg
    +
    +

    To enable LKRG on bootup please use:

    +
    systemctl enable lkrg
    +
    +

    Testing and recovery

    +

    Although the current package passed our own testing (on 8.8 and 9.2), we recommend that you only enable LKRG to start on system bootup after you've tested it for a while to ensure its compatibility with your system. If you nevertheless run into a boot time issue with LKRG later, you can disable it with the nolkrg kernel command-line option.

    +

    Change log

    +
    * Wed Nov 08 2023 Solar Designer <solar@openwall.com> 0.9.7-4
    +- Add a couple of upstream patches, most notably to fix kINT false positives on
    +EL 8.8.
    +
    +* Tue Oct 24 2023 Solar Designer <solar@openwall.com> 0.9.7-3
    +- Use weak-modules if available so that on RHEL and its rebuilds the same LKRG
    +  package build works across different kABI-compatible kernel revisions/builds
    +- Drop 32-bit x86 from ExclusiveArch since recent RHEL lacks such kernel-devel
    +
    +* Thu Sep 14 2023 Solar Designer <solar@openwall.com> 0.9.7-2
    +- Use kernel build directory corresponding to the kernel-devel package, not to
    +the currently running kernel
    +- "BuildRequires: kernel" for the /lib/modules/* directory
    +- "BuildRequires: elfutils-libelf-devel" to support CONFIG_UNWINDER_ORC=y
    +
    +* Thu Sep 14 2023 Solar Designer <solar@openwall.com> 0.9.7-1
    +- Wrote this rough RPM spec file for Red Hat'ish distros, seems to work fine on
    +RHEL 7, 8, 9 rebuilds, but is only reliable when there's exactly one
    +kernel-devel package installed at build time and it exactly matches the target
    +kernel version.
    +
    + +
    +
    + + + Last update: + November 16, 2023 + + + +
    + + + + + + +
    +
    + + +
    + + + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/packages/microcode_ctl/index.html b/packages/microcode_ctl/index.html index 8aca6c3..6df6bc1 100644 --- a/packages/microcode_ctl/index.html +++ b/packages/microcode_ctl/index.html @@ -13,7 +13,7 @@ - + @@ -376,6 +376,10 @@ + + + + @@ -458,6 +462,26 @@ + +
  • + + + + + Extra package: lkrg + + + + +
  • + + + + + + + + @@ -561,6 +585,26 @@ + + + + + +
  • + + + + + Extra package: passwdqc + + + + +
  • + + + + diff --git a/packages/openssh/index.html b/packages/openssh/index.html index dc4a854..25a07fb 100644 --- a/packages/openssh/index.html +++ b/packages/openssh/index.html @@ -16,6 +16,8 @@ + + @@ -374,6 +376,10 @@ + + + + @@ -457,6 +463,26 @@ +
  • + + + + + Extra package: lkrg + + + + +
  • + + + + + + + + +
  • @@ -559,6 +585,26 @@ + + + + + +
  • + + + + + Extra package: passwdqc + + + + +
  • + + + + diff --git a/packages/passwdqc/index.html b/packages/passwdqc/index.html new file mode 100644 index 0000000..71e087f --- /dev/null +++ b/packages/passwdqc/index.html @@ -0,0 +1,757 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Extra package: passwdqc - SIG/Security Wiki + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + + +
    +
    + + + + + + + + + + + + +

    Extra package: passwdqc

    +

    EL8 and EL9

    +
      +
    • Version 2.0.3-2.el9_2.security
    • +
    • Based on upstream version 2.0.3-2 as packaged in Fedora
    • +
    +

    Package summary

    +

    passwdqc is a password/passphrase strength checking and policy enforcement toolset, including a PAM module (pam_passwdqc), command-line programs (pwqcheck, pwqfilter, and pwqgen), and a library (libpasswdqc).

    +

    More information is available on the passwdqc homepage and in the documentation files (man pages and a README) included in the sub-packages below.

    +

    Usage in Rocky Linux

    +

    There are 4 sub-packages:

    +

    pam_passwdqc

    +

    pam_passwdqc is a PAM module that is normally invoked on password changes by programs such as passwd(1). It is capable of checking password or passphrase strength, enforcing a policy, and offering randomly-generated passphrases, with all of these features being optional and easily (re-)configurable.

    +

    Merely installing this sub-package does not yet configure the system to use the PAM module. To do so, please edit PAM configuration files e.g. like shown here.

    +

    passwdqc-utils

    +

    pwqcheck and pwqgen are standalone password/passphrase strength checking and random passphrase generator programs, respectively, which are usable from scripts.

    +

    The pwqfilter program searches, creates, or updates binary passphrase filter files, which can also be used with pwqcheck and pam_passwdqc. This can be used for checking of user-provided passwords against existing data breaches, which is recommended in the current NIST guidance, specifically in publication 800-63B sections 5.1.1.2 and A.3. Paid pre-generated filter files are available from Openwall at the project homepage above, but with this tool you can also generate your own.

    +

    libpasswdqc

    +

    libpasswdqc is the underlying library, which may also be used from third-party programs.

    +

    passwdqc

    +

    passwdqc is a meta sub-package that installs (via dependencies) all 3 actual sub-packages above.

    + +
    +
    + + + Last update: + November 16, 2023 + + + +
    + + + + + + +
    +
    + + +
    + + + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json index 145cd4c..4340ef7 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"SIG/Security Wiki","text":"

    The Security SIG repositories provide extra security-related packages and security-hardened override packages (replacing those from the main distribution) for Rocky Linux and other Enterprise Linux (EL) distributions.

    "},{"location":"#responsibilities","title":"Responsibilities","text":"

    Developing and maintaining various security related packages that are not in upstream EL. Identifying, developing, and maintaining security hardening changes relative to upstream EL packages. Occasionally including/backporting additional security fixes that are not yet in upstream EL packages. Contributing to the respective upstreams where practical.

    "},{"location":"#repo-installation","title":"Repo Installation","text":""},{"location":"#on-rocky-linux","title":"On Rocky Linux","text":"
    dnf install rocky-release-security\n
    "},{"location":"#on-another-compatible-el-distro","title":"On another compatible EL distro","text":"

    Download the release package containing our repository configuration file and package signing public key. Use the version that corresponds to the major version of your EL distro.

    Verify the package file's SHA-256 digest with sha256sum. The currently expected digests are:

    8daf0934c8b5cfce1f5c2dc53ea0118102940bf307c7cc8863ab718696863da6  rocky-release-security-9-2.el9.noarch.rpm\n15aebef7257d4ff3c59a3b4e45acf8fae9894a10ddd2c924dfd521033337e96c  rocky-release-security-8-2.el8.noarch.rpm\n

    This isn't as secure as checking the package signature would be if you previously had our package signing public key, but on another distro you probably don't have that yet, so checking the digest against its copy obtained from this separate website is a best-effort measure.

    Install the package with rpm -U --nodeps. The --nodeps option is needed to bypass the dependency check on our rocky-release package. In essense, you're manually confirming to rpm that you're installing on a compatible distro.

    You'll normally install packages from the mirrors, which should just work. However, if there's any issue with the mirrors and you uncomment our baseurl line instead, then on non-Rocky you'll need to use DNF_VAR_sigcontentdir=/pub/sig dnf in place of simply dnf.

    "},{"location":"#packages","title":"Packages","text":""},{"location":"#extra-packages-for-el8-and-el9","title":"Extra packages (for EL8 and EL9)","text":""},{"location":"#extra-packages-currently-only-for-el9","title":"Extra packages (currently only for EL9)","text":""},{"location":"#override-packages-currently-only-for-el9","title":"Override packages (currently only for EL9)","text":"

    The changes are described in more detail on the per-package wiki pages linked above, as well as in the package changelogs. More packages/changes are planned, including override packages also for EL8.

    "},{"location":"#source-code","title":"Source code","text":"

    Just like for other Rocky Linux SIGs, the source trees for Security SIG packages are maintained in per-package git repositories. Each repository contains branches r8 and/or r9 corresponding to target EL version.

    "},{"location":"#contributing","title":"Contributing","text":"

    If anyone else wants to join this effort - in any capacity including development, maintenance, testing, documentation, user support, spreading the word, or something else - please join the Mattermost channel below and let us know!

    We also welcome well-reasoned suggestions/feedback/preferences on direction we should take (e.g., only making changes on top of EL's vs. offering newer upstream versions), what else to package, and what other changes to include.

    "},{"location":"#meetings-communications","title":"Meetings / Communications","text":"

    We hang out in our Security Mattermost channel.

    "},{"location":"#members","title":"Members","text":"

    Some of the people active with setting up this SIG so far:

    Name Mattermost Name @flawedworld Fredrik Nystr\u00f6m @nscfreny Louis Abel @label Mustafa @mustafa Neil Hanlon @neil Scott Shinn @atomicturtle Solar Designer @solardiz"},{"location":"issues/CVE-2023-23583/","title":"CVE-2023-23583: microcode_ctl","text":""},{"location":"issues/CVE-2023-23583/#title","title":"Title","text":"

    CVE-2023-23583: microcode_ctl: Intel CPUs: execution of MOVSB instructions with redundant REX prefix leads to unintended system behavior

    "},{"location":"issues/CVE-2023-23583/#summary","title":"Summary","text":"

    As described by Intel:

    Under certain microarchitectural conditions, Intel has identified cases where execution of an instruction (REP MOVSB) encoded with a redundant REX prefix may result in unpredictable system behavior resulting in a system crash/hang, or, in some limited scenarios, may allow escalation of privilege from CPL3 to CPL0.

    and by Red Hat:

    A security vulnerability was found in some Intel processors. Execution of REP MOVSB instructions with a redundant REX prefix may result in execution continuing at an incorrect EIP address after a micro-architectural event occurs, potentially allowing privilege escalation, information disclosure and/or a denial of service via local access.

    as well as in CVE-2023-23583.

    More detail is available via these links to Intel's website and in the public disclosure by Tavis Ormandy from Google.

    Public disclosure date: November 14, 2023

    "},{"location":"issues/CVE-2023-23583/#el9","title":"EL9","text":"

    Please refer to our override package of microcode_ctl.

    "},{"location":"issues/CVE-2023-23583/#el8","title":"EL8","text":""},{"location":"issues/CVE-2023-4911/","title":"CVE-2023-4911: glibc","text":""},{"location":"issues/CVE-2023-4911/#title","title":"Title","text":"

    CVE-2023-4911: glibc: Looney Tunables: buffer overflow in ld.so leading to privilege escalation

    "},{"location":"issues/CVE-2023-4911/#summary","title":"Summary","text":"

    As described by Red Hat and in CVE-2023-4911:

    A buffer overflow was discovered in the GNU C Library's dynamic loader ld.so while processing the GLIBC_TUNABLES environment variable. This issue could allow a local attacker to use maliciously crafted GLIBC_TUNABLES environment variables when launching binaries with SUID permission to execute code with elevated privileges.

    More detail is available in the public disclosure by Qualys, the team who discovered the issue.

    Public disclosure date: October 3, 2023

    "},{"location":"issues/CVE-2023-4911/#el9","title":"EL9","text":"

    Besides the upstream fix, we also retained the mitigation in our override package of glibc.

    "},{"location":"issues/CVE-2023-4911/#el8","title":"EL8","text":""},{"location":"packages/glibc/","title":"Override package: glibc","text":""},{"location":"packages/glibc/#el9","title":"EL9","text":""},{"location":"packages/glibc/#changes-summary","title":"Changes summary","text":""},{"location":"packages/glibc/#known-effective-vulnerability-mitigations-and-fixes","title":"Known-effective vulnerability mitigations and fixes","text":"

    2.34-60.el9_2.security.0.2 included mitigations sufficient to avoid security exposure of CVE-2023-4911 and a backport of upstream glibc fix of CVE-2023-4527 that was not yet in upstream EL. In the update to 2.34-60.7.el9_2.security.0.3, we retained the mitigations while rebasing on upstream EL's package with upstream fixes for these vulnerabilities (and more).

    In general, inclusion of additional security fixes will be \"reverted\" if and when those get included in upstream EL packages that we rebase our changes on.

    "},{"location":"packages/glibc/#change-log","title":"Change log","text":"
    * Fri Oct  6 2023 Solar Designer <solar@openwall.com> - 2.34-60.7.el9.security.0.3\n- Rebase on 2.34-60.7, drop \"our\" CVE-2023-4527 patch in favor of RH's\n\n* Mon Sep 25 2023 Florian Weimer <fweimer@redhat.com> - 2.34-60.7\n- Fix memory leak regression in getaddrinfo (RHEL-2425)\n\n* Tue Sep 19 2023 Carlos O'Donell <carlos@redhat.com> - 2.34-60.6\n- CVE-2023-4911 glibc: buffer overflow in ld.so leading to privilege escalation (RHEL-2999)\n\n* Tue Sep 19 2023 Carlos O'Donell <carlos@redhat.com> - 2.34-60.5\n- Revert: Always call destructors in reverse constructor order (RHEL-3385)\n\n* Mon Sep 18 2023 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.34-60.4\n- CVE-2023-4806 glibc: potential use-after-free in getaddrinfo (RHEL-2425)\n\n* Fri Sep 15 2023 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.34-60.3\n- CVE-2023-4813: potential use-after-free in gaih_inet (RHEL-2437)\n\n* Fri Sep 15 2023 Carlos O'Donell <carlos@redhat.com> - 2.34-60.2\n- CVE-2023-4527: Stack read overflow in getaddrinfo in no-aaaa mode (#2234715)\n\n* Wed Sep 13 2023 Florian Weimer <fweimer@redhat.com> - 2.34-60.1\n- Always call destructors in reverse constructor order (RHEL-3385)\n\n* Mon Oct  2 2023 Solar Designer <solar@openwall.com> - 2.34-60.el9.security.0.2\n- Add glibc-owl-alt-sanitize-env.patch stitched from several ALT Linux commits\n  as none of their revisions matched this package's set of backports as-is\n- Add glibc-upstream-no-aaaa-CVE-2023-4527.patch based on upstream commit\n  bd77dd7e73e3530203be1c52c8a29d08270cb25d fixing\n  CVE-2023-4527: Stack read overflow with large TCP responses in no-aaaa mode\n\n* Tue Sep 26 2023 Solar Designer <solar@openwall.com> - 2.34-60.el9.security.0.1\n- Revise the texinfo documentation edit of glibc-2.34-alt-asprintf.patch via\n  glibc-2.34-rocky-asprintf.patch\n\n* Sat Sep 23 2023 Solar Designer <solar@openwall.com> - 2.34-60.el9.security.0.0\n- Add some of the patches from ALT Linux as of when they were at 2.34:\n  https://git.altlinux.org/gears/g/glibc.git\n  git show 5fa32fb0f8509f4b2b1105d71b45966dfbadc099 > glibc-2.34-alt-tmpfile.patch\n  git show f97e5d60a6a4c9cb64e3b9ee6f5113969cf07d87 > glibc-2.34-alt-asprintf.patch\n  git show cd45d0f74560325cc48aedb9f56881270ab3dfab > glibc-2.34-alt-libio-bound.patch\n  git show 436eb1017c04aee3a553c2868d00a4b046e5e394 > glibc-2.34-owl-alt-syslog-ident.patch\n  git show 03a86c234873723c26b7e387c498c1332c223968 > glibc-2.34-mjt-owl-alt-syslog-timestamp.patch\n
    "},{"location":"packages/hardened_malloc/","title":"Extra package: hardened_malloc","text":""},{"location":"packages/hardened_malloc/#el9","title":"EL9","text":""},{"location":"packages/hardened_malloc/#package-summary","title":"Package summary","text":"

    This package ships the \"normal\" and \"light\" configurations of the GrapheneOS hardened_malloc project. The official README.md in the upstream project documents security properties and explains the differences between the regular and light variants.

    "},{"location":"packages/hardened_malloc/#usage-in-rocky-linux","title":"Usage in Rocky Linux","text":"

    It is strongly reccomended to read all documentation here before deploying this package on your infrastructure.

    In order to support the large amount of mappings caused by guard slabs and large allocation guard regions, the vm.max_map_count sysctl is increased as part of package installation to 1048576 in /etc/sysctl.d/hardened_malloc.conf. You'll need to run sysctl -p /etc/sysctl.d/hardened_malloc.conf for this change to take effect without a reboot. Incidentally, Fedora 39 made the same change, so it's not an exotic configuration.

    The package ships 2 builds of hardened_malloc, the regular variant, which is located at /usr/lib64/libhardened_malloc.so and can be preloaded using the hardened_malloc_preload.sh script, and the light variant, which is located at /usr/lib64/libhardened_malloc-light.so and can be preloaded using the hardened_malloc_light_preload.sh script. The preload scripts add the relevant library to LD_PRELOAD and then load the desired binary, as shown in the following example: hardened_malloc_preload.sh cat /proc/self/maps.

    Users may choose to set an OS-wide LD_PRELOAD with hardened_malloc. This can be done by adding the desired library, for example, /usr/lib64/libhardened_malloc.so, into your /etc/ld.so.preload. Be aware that for applications where AT_SECURE is set, this approach will not work.

    It is suggested that if you wish to deploy hardened_malloc systemwide, that you deploy it in your LD_PRELOAD with the normal variant globally, and then for applications which are performance sensitive, or which fail with the normal variant, try them individually with the light variant using the preload script or by setting LD_PRELOAD within a systemd service namespace. If that does not resolve your issue, try disabling hardened_malloc by running the program in its own systemd service namespace.

    "},{"location":"packages/hardened_malloc/#bugs-uncovered-by-hardened_malloc","title":"Bugs uncovered by hardened_malloc","text":"

    As with all infrastructure changes, ensure you test in your staging environment extensively before deploying into production. Many packages and projects suffer from memory corruption bugs, which when running under glibc are not encountered during operation, but which hardened_malloc uncovers. Some applications may crash during usage, completely break, or break when running with certain configurations. Bugs in packages are typically a result of upstream project bugs, and should be reported there. In some cases these bugs are fixed in later versions in the upstream project, in which case the bug is an issue with Rocky Linux, and should be reported to Rocky Linux and its upstream distribution, so that the patch may be included.

    Package name Latest version tested Normal variant Light variant php php-8.0.30-1.el9_2.x86_64 Broken Broken php php-8.1.14-1.module+el9.2.0+15232+36037ab0.x86_64 Broken Broken sssd sssd-2.8.2-3.el9_2.x86_64 Broken Broken"},{"location":"packages/hardened_malloc/#potential-for-issues-with-edr","title":"Potential for issues with EDR","text":"

    By nature of relying on LD_PRELOAD, if you have EDR software on your server, it may falsely send alerts when using hardened_malloc. If it doesn't, your EDR is probably terrible or misconfigured.

    "},{"location":"packages/hardened_malloc/#change-log","title":"Change log","text":"
    * Tue Nov 14 2023 Solar Designer <solar@openwall.com> 12-3\n- Package hardened_malloc_light_preload.sh\n- Disable arm64 building for now (fix didn't work)\n\n* Wed Nov  8 2023 flawedworld <flawedworld@flawed.world> 12-2\n- Set CONFIG_NATIVE to false\n- Mark libraries as executable (change to 755 permissions)\n- Add hardened_malloc_light_preload.sh\n- Fix arm64 building\n\n* Sat Oct 28 2023 flawedworld <flawedworld@flawed.world> 12-1\n- Initial packaging for hardened_malloc version 12, co-authored-by\n  Scott Shinn (atomicturtle) and Solar Designer\n
    "},{"location":"packages/microcode_ctl/","title":"Override package: microcode_ctl","text":""},{"location":"packages/microcode_ctl/#el9","title":"EL9","text":""},{"location":"packages/microcode_ctl/#changes-summary","title":"Changes summary","text":""},{"location":"packages/microcode_ctl/#change-log","title":"Change log","text":"
    * Tue Nov 14 2023 Solar Designer <solar@openwall.com> - 4:20231114-1\n- Update Intel CPU microcode to microcode-20231114 (fixes CVE-2023-23583),\n  temporarily dropping most documentation patches\n
    "},{"location":"packages/openssh/","title":"Override package: openssh","text":""},{"location":"packages/openssh/#el9","title":"EL9","text":""},{"location":"packages/openssh/#changes-summary","title":"Changes summary","text":""},{"location":"packages/openssh/#change-log","title":"Change log","text":"
    * Sat Oct 07 2023 Solar Designer <solar@openwall.com> 8.7p1-30.el9.security.0.2\n- Load libsystemd.so.0, not libsystemd.so, as the latter is only provided by\n  systemd-devel\n\n* Mon Aug 28 2023 Solar Designer <solar@openwall.com> 8.7p1-30.el9.security.0.1\n- Instead of linking against libsystemd, load it dynamically in a temporary\n  child process to avoid polluting actual sshd's address space with that\n  library and its many dependencies (shortens \"ldd sshd\" from 28 to 20 lines)\n
    "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"SIG/Security Wiki","text":"

    The Security SIG repositories provide extra security-related packages and security-hardened override packages (replacing those from the main distribution) for Rocky Linux and other Enterprise Linux (EL) distributions.

    "},{"location":"#responsibilities","title":"Responsibilities","text":"

    Developing and maintaining various security related packages that are not in upstream EL. Identifying, developing, and maintaining security hardening changes relative to upstream EL packages. Occasionally including/backporting additional security fixes that are not yet in upstream EL packages. Contributing to the respective upstreams where practical.

    "},{"location":"#repo-installation","title":"Repo Installation","text":""},{"location":"#on-rocky-linux","title":"On Rocky Linux","text":"
    dnf install rocky-release-security\n
    "},{"location":"#on-another-compatible-el-distro","title":"On another compatible EL distro","text":"

    Download the release package containing our repository configuration file and package signing public key. Use the version that corresponds to the major version of your EL distro.

    Verify the package file's SHA-256 digest with sha256sum. The currently expected digests are:

    8daf0934c8b5cfce1f5c2dc53ea0118102940bf307c7cc8863ab718696863da6  rocky-release-security-9-2.el9.noarch.rpm\n15aebef7257d4ff3c59a3b4e45acf8fae9894a10ddd2c924dfd521033337e96c  rocky-release-security-8-2.el8.noarch.rpm\n

    This isn't as secure as checking the package signature would be if you previously had our package signing public key, but on another distro you probably don't have that yet, so checking the digest against its copy obtained from this separate website is a best-effort measure.

    Install the package with rpm -U --nodeps. The --nodeps option is needed to bypass the dependency check on our rocky-release package. In essense, you're manually confirming to rpm that you're installing on a compatible distro.

    You'll normally install packages from the mirrors, which should just work. However, if there's any issue with the mirrors and you uncomment our baseurl line instead, then on non-Rocky you'll need to use DNF_VAR_sigcontentdir=/pub/sig dnf in place of simply dnf.

    "},{"location":"#packages","title":"Packages","text":""},{"location":"#extra-packages-for-el8-and-el9","title":"Extra packages (for EL8 and EL9)","text":""},{"location":"#extra-packages-currently-only-for-el9","title":"Extra packages (currently only for EL9)","text":""},{"location":"#override-packages-currently-only-for-el9","title":"Override packages (currently only for EL9)","text":"

    The changes are described in more detail on the per-package wiki pages linked above, as well as in the package changelogs. More packages/changes are planned, including override packages also for EL8.

    "},{"location":"#source-code","title":"Source code","text":"

    Just like for other Rocky Linux SIGs, the source trees for Security SIG packages are maintained in per-package git repositories. Each repository contains branches r8 and/or r9 corresponding to target EL version.

    "},{"location":"#contributing","title":"Contributing","text":"

    If anyone else wants to join this effort - in any capacity including development, maintenance, testing, documentation, user support, spreading the word, or something else - please join the Mattermost channel below and let us know!

    We also welcome well-reasoned suggestions/feedback/preferences on direction we should take (e.g., only making changes on top of EL's vs. offering newer upstream versions), what else to package, and what other changes to include.

    "},{"location":"#meetings-communications","title":"Meetings / Communications","text":"

    We hang out in our Security Mattermost channel.

    "},{"location":"#members","title":"Members","text":"

    Some of the people active with setting up this SIG so far:

    Name Mattermost Name @flawedworld Fredrik Nystr\u00f6m @nscfreny Louis Abel @label Mustafa @mustafa Neil Hanlon @neil Scott Shinn @atomicturtle Solar Designer @solardiz"},{"location":"issues/CVE-2023-23583/","title":"CVE-2023-23583: microcode_ctl","text":""},{"location":"issues/CVE-2023-23583/#title","title":"Title","text":"

    CVE-2023-23583: microcode_ctl: Intel CPUs: execution of MOVSB instructions with redundant REX prefix leads to unintended system behavior

    "},{"location":"issues/CVE-2023-23583/#summary","title":"Summary","text":"

    As described by Intel:

    Under certain microarchitectural conditions, Intel has identified cases where execution of an instruction (REP MOVSB) encoded with a redundant REX prefix may result in unpredictable system behavior resulting in a system crash/hang, or, in some limited scenarios, may allow escalation of privilege from CPL3 to CPL0.

    and by Red Hat:

    A security vulnerability was found in some Intel processors. Execution of REP MOVSB instructions with a redundant REX prefix may result in execution continuing at an incorrect EIP address after a micro-architectural event occurs, potentially allowing privilege escalation, information disclosure and/or a denial of service via local access.

    as well as in CVE-2023-23583.

    More detail is available via these links to Intel's website and in the public disclosure by Tavis Ormandy from Google.

    Public disclosure date: November 14, 2023

    "},{"location":"issues/CVE-2023-23583/#el9","title":"EL9","text":"

    Please refer to our override package of microcode_ctl.

    "},{"location":"issues/CVE-2023-23583/#el8","title":"EL8","text":""},{"location":"issues/CVE-2023-4911/","title":"CVE-2023-4911: glibc","text":""},{"location":"issues/CVE-2023-4911/#title","title":"Title","text":"

    CVE-2023-4911: glibc: Looney Tunables: buffer overflow in ld.so leading to privilege escalation

    "},{"location":"issues/CVE-2023-4911/#summary","title":"Summary","text":"

    As described by Red Hat and in CVE-2023-4911:

    A buffer overflow was discovered in the GNU C Library's dynamic loader ld.so while processing the GLIBC_TUNABLES environment variable. This issue could allow a local attacker to use maliciously crafted GLIBC_TUNABLES environment variables when launching binaries with SUID permission to execute code with elevated privileges.

    More detail is available in the public disclosure by Qualys, the team who discovered the issue.

    Public disclosure date: October 3, 2023

    "},{"location":"issues/CVE-2023-4911/#el9","title":"EL9","text":"

    Besides the upstream fix, we also retained the mitigation in our override package of glibc.

    "},{"location":"issues/CVE-2023-4911/#el8","title":"EL8","text":""},{"location":"packages/glibc/","title":"Override package: glibc","text":""},{"location":"packages/glibc/#el9","title":"EL9","text":""},{"location":"packages/glibc/#changes-summary","title":"Changes summary","text":""},{"location":"packages/glibc/#known-effective-vulnerability-mitigations-and-fixes","title":"Known-effective vulnerability mitigations and fixes","text":"

    2.34-60.el9_2.security.0.2 included mitigations sufficient to avoid security exposure of CVE-2023-4911 and a backport of upstream glibc fix of CVE-2023-4527 that was not yet in upstream EL. In the update to 2.34-60.7.el9_2.security.0.3, we retained the mitigations while rebasing on upstream EL's package with upstream fixes for these vulnerabilities (and more).

    In general, inclusion of additional security fixes will be \"reverted\" if and when those get included in upstream EL packages that we rebase our changes on.

    "},{"location":"packages/glibc/#change-log","title":"Change log","text":"
    * Fri Oct  6 2023 Solar Designer <solar@openwall.com> - 2.34-60.7.el9.security.0.3\n- Rebase on 2.34-60.7, drop \"our\" CVE-2023-4527 patch in favor of RH's\n\n* Mon Sep 25 2023 Florian Weimer <fweimer@redhat.com> - 2.34-60.7\n- Fix memory leak regression in getaddrinfo (RHEL-2425)\n\n* Tue Sep 19 2023 Carlos O'Donell <carlos@redhat.com> - 2.34-60.6\n- CVE-2023-4911 glibc: buffer overflow in ld.so leading to privilege escalation (RHEL-2999)\n\n* Tue Sep 19 2023 Carlos O'Donell <carlos@redhat.com> - 2.34-60.5\n- Revert: Always call destructors in reverse constructor order (RHEL-3385)\n\n* Mon Sep 18 2023 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.34-60.4\n- CVE-2023-4806 glibc: potential use-after-free in getaddrinfo (RHEL-2425)\n\n* Fri Sep 15 2023 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.34-60.3\n- CVE-2023-4813: potential use-after-free in gaih_inet (RHEL-2437)\n\n* Fri Sep 15 2023 Carlos O'Donell <carlos@redhat.com> - 2.34-60.2\n- CVE-2023-4527: Stack read overflow in getaddrinfo in no-aaaa mode (#2234715)\n\n* Wed Sep 13 2023 Florian Weimer <fweimer@redhat.com> - 2.34-60.1\n- Always call destructors in reverse constructor order (RHEL-3385)\n\n* Mon Oct  2 2023 Solar Designer <solar@openwall.com> - 2.34-60.el9.security.0.2\n- Add glibc-owl-alt-sanitize-env.patch stitched from several ALT Linux commits\n  as none of their revisions matched this package's set of backports as-is\n- Add glibc-upstream-no-aaaa-CVE-2023-4527.patch based on upstream commit\n  bd77dd7e73e3530203be1c52c8a29d08270cb25d fixing\n  CVE-2023-4527: Stack read overflow with large TCP responses in no-aaaa mode\n\n* Tue Sep 26 2023 Solar Designer <solar@openwall.com> - 2.34-60.el9.security.0.1\n- Revise the texinfo documentation edit of glibc-2.34-alt-asprintf.patch via\n  glibc-2.34-rocky-asprintf.patch\n\n* Sat Sep 23 2023 Solar Designer <solar@openwall.com> - 2.34-60.el9.security.0.0\n- Add some of the patches from ALT Linux as of when they were at 2.34:\n  https://git.altlinux.org/gears/g/glibc.git\n  git show 5fa32fb0f8509f4b2b1105d71b45966dfbadc099 > glibc-2.34-alt-tmpfile.patch\n  git show f97e5d60a6a4c9cb64e3b9ee6f5113969cf07d87 > glibc-2.34-alt-asprintf.patch\n  git show cd45d0f74560325cc48aedb9f56881270ab3dfab > glibc-2.34-alt-libio-bound.patch\n  git show 436eb1017c04aee3a553c2868d00a4b046e5e394 > glibc-2.34-owl-alt-syslog-ident.patch\n  git show 03a86c234873723c26b7e387c498c1332c223968 > glibc-2.34-mjt-owl-alt-syslog-timestamp.patch\n
    "},{"location":"packages/hardened_malloc/","title":"Extra package: hardened_malloc","text":""},{"location":"packages/hardened_malloc/#el9","title":"EL9","text":""},{"location":"packages/hardened_malloc/#package-summary","title":"Package summary","text":"

    This package ships the \"normal\" and \"light\" configurations of the GrapheneOS hardened_malloc project. The official README.md in the upstream project documents security properties and explains the differences between the regular and light variants.

    "},{"location":"packages/hardened_malloc/#usage-in-rocky-linux","title":"Usage in Rocky Linux","text":"

    It is strongly reccomended to read all documentation here before deploying this package on your infrastructure.

    In order to support the large amount of mappings caused by guard slabs and large allocation guard regions, the vm.max_map_count sysctl is increased as part of package installation to 1048576 in /etc/sysctl.d/hardened_malloc.conf. You'll need to run sysctl -p /etc/sysctl.d/hardened_malloc.conf for this change to take effect without a reboot. Incidentally, Fedora 39 made the same change, so it's not an exotic configuration.

    The package ships 2 builds of hardened_malloc, the regular variant, which is located at /usr/lib64/libhardened_malloc.so and can be preloaded using the hardened_malloc_preload.sh script, and the light variant, which is located at /usr/lib64/libhardened_malloc-light.so and can be preloaded using the hardened_malloc_light_preload.sh script. The preload scripts add the relevant library to LD_PRELOAD and then load the desired binary, as shown in the following example: hardened_malloc_preload.sh cat /proc/self/maps.

    Users may choose to set an OS-wide LD_PRELOAD with hardened_malloc. This can be done by adding the desired library, for example, /usr/lib64/libhardened_malloc.so, into your /etc/ld.so.preload. Be aware that for applications where AT_SECURE is set, this approach will not work.

    It is suggested that if you wish to deploy hardened_malloc systemwide, that you deploy it in your LD_PRELOAD with the normal variant globally, and then for applications which are performance sensitive, or which fail with the normal variant, try them individually with the light variant using the preload script or by setting LD_PRELOAD within a systemd service namespace. If that does not resolve your issue, try disabling hardened_malloc by running the program in its own systemd service namespace.

    "},{"location":"packages/hardened_malloc/#bugs-uncovered-by-hardened_malloc","title":"Bugs uncovered by hardened_malloc","text":"

    As with all infrastructure changes, ensure you test in your staging environment extensively before deploying into production. Many packages and projects suffer from memory corruption bugs, which when running under glibc are not encountered during operation, but which hardened_malloc uncovers. Some applications may crash during usage, completely break, or break when running with certain configurations. Bugs in packages are typically a result of upstream project bugs, and should be reported there. In some cases these bugs are fixed in later versions in the upstream project, in which case the bug is an issue with Rocky Linux, and should be reported to Rocky Linux and its upstream distribution, so that the patch may be included.

    Package name Latest version tested Normal variant Light variant php php-8.0.30-1.el9_2.x86_64 Broken Broken php php-8.1.14-1.module+el9.2.0+15232+36037ab0.x86_64 Broken Broken sssd sssd-2.8.2-3.el9_2.x86_64 Broken Broken"},{"location":"packages/hardened_malloc/#potential-for-issues-with-edr","title":"Potential for issues with EDR","text":"

    By nature of relying on LD_PRELOAD, if you have EDR software on your server, it may falsely send alerts when using hardened_malloc. If it doesn't, your EDR is probably terrible or misconfigured.

    "},{"location":"packages/hardened_malloc/#change-log","title":"Change log","text":"
    * Tue Nov 14 2023 Solar Designer <solar@openwall.com> 12-3\n- Package hardened_malloc_light_preload.sh\n- Disable arm64 building for now (fix didn't work)\n\n* Wed Nov  8 2023 flawedworld <flawedworld@flawed.world> 12-2\n- Set CONFIG_NATIVE to false\n- Mark libraries as executable (change to 755 permissions)\n- Add hardened_malloc_light_preload.sh\n- Fix arm64 building\n\n* Sat Oct 28 2023 flawedworld <flawedworld@flawed.world> 12-1\n- Initial packaging for hardened_malloc version 12, co-authored-by\n  Scott Shinn (atomicturtle) and Solar Designer\n
    "},{"location":"packages/lkrg/","title":"Extra package: lkrg","text":""},{"location":"packages/lkrg/#el8-and-el9","title":"EL8 and EL9","text":""},{"location":"packages/lkrg/#package-summary","title":"Package summary","text":"

    LKRG, or Linux Kernel Runtime Guard, is a kernel module that performs runtime integrity checking of the Linux kernel and detection of security vulnerability exploits against the kernel.

    More information is available on the LKRG homepage and in the documentation files included in the package.

    "},{"location":"packages/lkrg/#usage-in-rocky-linux","title":"Usage in Rocky Linux","text":"

    Due to EL's kABI stability and the weak-modules mechanism, which this package uses, the same binary package of LKRG works across different kernel revisions/builds within the same EL minor release (e.g., 9.2). Once there's a new minor release (e.g., 9.2 is upgraded to 9.3), we'll provide a new build of LKRG accordingly.

    Installing the package does not automatically start LKRG nor enable it to start on system bootup. To start LKRG please use:

    systemctl start lkrg\n

    To enable LKRG on bootup please use:

    systemctl enable lkrg\n
    "},{"location":"packages/lkrg/#testing-and-recovery","title":"Testing and recovery","text":"

    Although the current package passed our own testing (on 8.8 and 9.2), we recommend that you only enable LKRG to start on system bootup after you've tested it for a while to ensure its compatibility with your system. If you nevertheless run into a boot time issue with LKRG later, you can disable it with the nolkrg kernel command-line option.

    "},{"location":"packages/lkrg/#change-log","title":"Change log","text":"
    * Wed Nov 08 2023 Solar Designer <solar@openwall.com> 0.9.7-4\n- Add a couple of upstream patches, most notably to fix kINT false positives on\nEL 8.8.\n\n* Tue Oct 24 2023 Solar Designer <solar@openwall.com> 0.9.7-3\n- Use weak-modules if available so that on RHEL and its rebuilds the same LKRG\n  package build works across different kABI-compatible kernel revisions/builds\n- Drop 32-bit x86 from ExclusiveArch since recent RHEL lacks such kernel-devel\n\n* Thu Sep 14 2023 Solar Designer <solar@openwall.com> 0.9.7-2\n- Use kernel build directory corresponding to the kernel-devel package, not to\nthe currently running kernel\n- \"BuildRequires: kernel\" for the /lib/modules/* directory\n- \"BuildRequires: elfutils-libelf-devel\" to support CONFIG_UNWINDER_ORC=y\n\n* Thu Sep 14 2023 Solar Designer <solar@openwall.com> 0.9.7-1\n- Wrote this rough RPM spec file for Red Hat'ish distros, seems to work fine on\nRHEL 7, 8, 9 rebuilds, but is only reliable when there's exactly one\nkernel-devel package installed at build time and it exactly matches the target\nkernel version.\n
    "},{"location":"packages/microcode_ctl/","title":"Override package: microcode_ctl","text":""},{"location":"packages/microcode_ctl/#el9","title":"EL9","text":""},{"location":"packages/microcode_ctl/#changes-summary","title":"Changes summary","text":""},{"location":"packages/microcode_ctl/#change-log","title":"Change log","text":"
    * Tue Nov 14 2023 Solar Designer <solar@openwall.com> - 4:20231114-1\n- Update Intel CPU microcode to microcode-20231114 (fixes CVE-2023-23583),\n  temporarily dropping most documentation patches\n
    "},{"location":"packages/openssh/","title":"Override package: openssh","text":""},{"location":"packages/openssh/#el9","title":"EL9","text":""},{"location":"packages/openssh/#changes-summary","title":"Changes summary","text":""},{"location":"packages/openssh/#change-log","title":"Change log","text":"
    * Sat Oct 07 2023 Solar Designer <solar@openwall.com> 8.7p1-30.el9.security.0.2\n- Load libsystemd.so.0, not libsystemd.so, as the latter is only provided by\n  systemd-devel\n\n* Mon Aug 28 2023 Solar Designer <solar@openwall.com> 8.7p1-30.el9.security.0.1\n- Instead of linking against libsystemd, load it dynamically in a temporary\n  child process to avoid polluting actual sshd's address space with that\n  library and its many dependencies (shortens \"ldd sshd\" from 28 to 20 lines)\n
    "},{"location":"packages/passwdqc/","title":"Extra package: passwdqc","text":""},{"location":"packages/passwdqc/#el8-and-el9","title":"EL8 and EL9","text":""},{"location":"packages/passwdqc/#package-summary","title":"Package summary","text":"

    passwdqc is a password/passphrase strength checking and policy enforcement toolset, including a PAM module (pam_passwdqc), command-line programs (pwqcheck, pwqfilter, and pwqgen), and a library (libpasswdqc).

    More information is available on the passwdqc homepage and in the documentation files (man pages and a README) included in the sub-packages below.

    "},{"location":"packages/passwdqc/#usage-in-rocky-linux","title":"Usage in Rocky Linux","text":"

    There are 4 sub-packages:

    "},{"location":"packages/passwdqc/#pam_passwdqc","title":"pam_passwdqc","text":"

    pam_passwdqc is a PAM module that is normally invoked on password changes by programs such as passwd(1). It is capable of checking password or passphrase strength, enforcing a policy, and offering randomly-generated passphrases, with all of these features being optional and easily (re-)configurable.

    Merely installing this sub-package does not yet configure the system to use the PAM module. To do so, please edit PAM configuration files e.g. like shown here.

    "},{"location":"packages/passwdqc/#passwdqc-utils","title":"passwdqc-utils","text":"

    pwqcheck and pwqgen are standalone password/passphrase strength checking and random passphrase generator programs, respectively, which are usable from scripts.

    The pwqfilter program searches, creates, or updates binary passphrase filter files, which can also be used with pwqcheck and pam_passwdqc. This can be used for checking of user-provided passwords against existing data breaches, which is recommended in the current NIST guidance, specifically in publication 800-63B sections 5.1.1.2 and A.3. Paid pre-generated filter files are available from Openwall at the project homepage above, but with this tool you can also generate your own.

    "},{"location":"packages/passwdqc/#libpasswdqc","title":"libpasswdqc","text":"

    libpasswdqc is the underlying library, which may also be used from third-party programs.

    "},{"location":"packages/passwdqc/#passwdqc","title":"passwdqc","text":"

    passwdqc is a meta sub-package that installs (via dependencies) all 3 actual sub-packages above.

    "}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index cbd2dbb..5fe6cc3 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,37 +2,47 @@ https://sig-security.rocky.page/ - 2023-11-15 + 2023-11-16 daily https://sig-security.rocky.page/issues/CVE-2023-23583/ - 2023-11-15 + 2023-11-16 daily https://sig-security.rocky.page/issues/CVE-2023-4911/ - 2023-11-15 + 2023-11-16 daily https://sig-security.rocky.page/packages/glibc/ - 2023-11-15 + 2023-11-16 daily https://sig-security.rocky.page/packages/hardened_malloc/ - 2023-11-15 + 2023-11-16 + daily + + + https://sig-security.rocky.page/packages/lkrg/ + 2023-11-16 daily https://sig-security.rocky.page/packages/microcode_ctl/ - 2023-11-15 + 2023-11-16 daily https://sig-security.rocky.page/packages/openssh/ - 2023-11-15 + 2023-11-16 + daily + + + https://sig-security.rocky.page/packages/passwdqc/ + 2023-11-16 daily \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 3acf87cdaabe42ccba43b52556970d4e7be6f9cf..83cbf3980b042ea1d79d8035f90e430835f0b6b3 100644 GIT binary patch literal 299 zcmV+`0o48Z7RT>SM_=GjSyPgfCL{tQtW>5h$=mBo zyeG$MR}4-g_$ZhSmZb5%e`IVNM~ccr$9tsK)eJ=w24q)}CGLnr$msggp=@k1H85egV=0yI*Mr007!Yi$wqc literal 284 zcmV+%0ptE3iwFozT2*BN|8r?{Wo=<_E_iKh0M(SiPJ}QJhVT0nq<2~hZnA5jdocP0 z>UC4g2+fujJ4NK}E$qf{HZhU8%*>yE{(Pq?PhXu$KEb1Qwj!KnBmt{jt!-10m*=PS zKu%&;4&ESyB$_Q&qz$3JXKWltiaJ0id!)`c3{@K!WH*sz^hm@mi8TjYr=?2cl$cX6 z#-MIe1T}aaChDEKOthB`u#(NL^^wHTxmx5|UZk9-d><`0ZDmufv<