From 92ebce7ff4daee52e912fc13f73227661c0a1fa7 Mon Sep 17 00:00:00 2001
From: Poltern <2363951+Poltern@users.noreply.github.com>
Date: Fri, 15 Sep 2023 21:53:49 +0500
Subject: [PATCH 1/3] Glibc: Fix CVE-2023-4806
---
chapter01/changelog.xml | 20 ++++++++++++++++++++
chapter01/whatsnew.xml | 27 ++++++---------------------
chapter03/patches.xml | 6 +++---
chapter08/glibc.xml | 17 +++--------------
patches.ent | 6 +++---
5 files changed, 35 insertions(+), 41 deletions(-)
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 4d0188b..e855144 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -39,6 +39,26 @@
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2023-09-13
+
+
+ [xry111] - Fix CVE-2023-4806 for Glibc-2.38. Fixes
+ #5347.
+
+
+
+
+
+ 2023-09-12
+
+
+ [xry111] - Fix CVE-2023-4527 for Glibc-2.38. Fixes
+ #5346.
+
+
+
+
2023-09-07
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index c24b2b4..149fcfb 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -286,35 +286,20 @@
Добавлены:
-
+
+ &glibc-upstream-fixes-patch;
+
-
-
-
Удалены:
-
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index 2f8f7de..ed378e7 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -77,10 +77,10 @@
-->
- Glibc Memalign Patch - &glibc-memalign-patch-size;:
+ Glibc Upstream Fixes Patch - &glibc-upstream-fixes-patch-size;:
- Ссылка на загрузку:
- Контрольная сумма MD5: &glibc-memalign-patch-md5;
+ Ссылка на загрузку:
+ Контрольная сумма MD5: &glibc-upstream-fixes-patch-md5;
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index 30afbcb..d6308b2 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -50,21 +50,10 @@
patch -Np1 -i ../&glibc-fhs-patch;
- Теперь исправьте регрессию, из-за которой функция posix_memalign() в некоторых
- условиях работала очень медленно:
+ Теперь исправьте две уязвимости безопасности и регрессию, из-за которой функция
+ posix_memalign() в некоторых условиях работает очень медленно:
-patch -Np1 -i ../&glibc-memalign-patch;
-
-
- Затем устраните уязвимость безопасности, которую можно использовать, когда в
- /etc/resolv.conf применяется параметр :
-
-sed \
- -E "/__res_context_search/\
- {N;N;s/(search \(([^,]*,){6}[^,]*)NULL/\1\&alt_dns_packet_buffer/}" \
- -i resolv/nss_dns/dns-host.c
+patch -Np1 -i ../&glibc-upstream-fixes-patch;Документация Glibc рекомендует выполнять компиляцию в отдельном каталоге:
diff --git a/patches.ent b/patches.ent
index 16f7cbd..828c439 100644
--- a/patches.ent
+++ b/patches.ent
@@ -14,9 +14,9 @@
-
-
-
+
+
+
From a6549d00b07e88731e03da6c47a6898171345d89 Mon Sep 17 00:00:00 2001
From: Poltern <2363951+Poltern@users.noreply.github.com>
Date: Fri, 15 Sep 2023 22:48:37 +0500
Subject: [PATCH 2/3] systemd: Use NSS modules provided by systemd in
nsswitch.conf
It allows a simplification to /etc/hosts. Also correct some info about
FQDN in both sysv and systemd.
---
chapter08/glibc.xml | 20 +++++++++++++++-
chapter09/network.xml | 19 ++++++++++-----
chapter09/networkd.xml | 54 +++++++++++++++++++-----------------------
3 files changed, 56 insertions(+), 37 deletions(-)
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index d6308b2..35f49d7 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -311,7 +311,7 @@ localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || trueСоздайте новый фай /etc/nsswitch.conf, выполнив
следующие действия:
-cat > /etc/nsswitch.conf << "EOF"
+cat > /etc/nsswitch.conf << "EOF"
# Begin /etc/nsswitch.conf
passwd: files
@@ -326,6 +326,24 @@ services: files
ethers: files
rpc: files
+# End /etc/nsswitch.conf
+EOF
+
+cat > /etc/nsswitch.conf << "EOF"
+# Begin /etc/nsswitch.conf
+
+passwd: files systemd
+group: files systemd
+shadow: files systemd
+
+hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
+networks: files
+
+protocols: files
+services: files
+ethers: files
+rpc: files
+
# End /etc/nsswitch.conf
EOF
diff --git a/chapter09/network.xml b/chapter09/network.xml
index f056cb9..9070aaf 100644
--- a/chapter09/network.xml
+++ b/chapter09/network.xml
@@ -161,8 +161,9 @@ EOF/etc/hosts
- Укажите IP-адрес, полное доменное имя (FQDN) и возможные псевдонимы для использования в
- файле /etc/hosts. Синтаксис строки:
+ Выберите полное доменное имя (FQDN) и возможные псевдонимы для использования в файле
+ /etc/hosts. Если вы используете статические IP-адреса, вам также необходимо
+ определиться с IP-адресом. Синтаксис для записи в файле hosts следующий:IP_address myhost.example.org aliases
@@ -177,11 +178,17 @@ EOF
x может быть любым числом в диапазоне 16-31. y может быть любым числом в диапазоне 0-255.
- Правильный IP адрес может быть 192.168.1.1. Правильный FQDN для этого IP
- адреса может быть lfs.example.org.
+ Правильным IP адресом в локальной сети может быть 192.168.1.1.
- Даже если сетевая карта не используется, всё равно требуется указание полного доменного
- имени. Это необходимо для правильной работы некоторых программ.
+ Если компьютер должен быть виден в Интернете, действительным полным доменным
+ именем может быть само имя домена или строка, полученная путем объединения префикса
+ (часто имени хоста) и домена с помощью символа .. Кроме того, вам
+ необходимо обратиться к администратору домена, чтобы связать полное доменное имя и
+ ваш общедоступный IP-адрес.
+
+ Даже если компьютер не виден из Интернета, полное доменное имя все равно необходимо
+ для правильной работы некоторых программ, таких как MTA. Для этих целей можно использовать
+ специальное полное доменное имя localhost.localdomain.Создайте файл /etc/hosts, выполнив команду:
diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml
index b6c66ef..10c1818 100644
--- a/chapter09/networkd.xml
+++ b/chapter09/networkd.xml
@@ -276,7 +276,8 @@ EOF
Если компьютер не должен быть виден в Интернете (т. е. нет зарегистрированного домена
и действительного блока назначенных IP-адресов—у большинства пользователей этого нет),
- убедитесь, что IP-адрес находится в диапазоне внутренних сетевых IP-адресов. Допустимые диапазоны:
+ убедитесь, что IP-адрес находится в диапазоне внутренних сетевых IP-адресов. Допустимые
+ диапазоны:
Диапазон адресов локальной сети Стандартный префикс
10.0.0.1 - 10.255.255.254 8
@@ -285,53 +286,46 @@ EOFx может быть любым числом в диапазоне 16-31. y может быть любым числом в диапазоне 0-255.
- Правильный IP адрес может быть 192.168.1.1. Правильный FQDN для этого IP
- адреса может быть lfs.example.org.
+ Правильным IP адресом в локальной сети может быть 192.168.1.1.
- Даже если сетевая карта не используется, всё равно требуется указание полного доменного
- имени. Это необходимо для правильной работы некоторых программ.
+ Если компьютер должен быть виден в Интернете, действительным полным доменным
+ именем может быть само имя домена или строка, полученная путем объединения префикса
+ (часто имени хоста) и домена с помощью символа .. Кроме того, вам
+ необходимо обратиться к администратору домена, чтобы связать полное доменное имя и
+ ваш общедоступный IP-адрес.
-
+ Даже если компьютер не виден из Интернета, полное доменное имя все равно необходимо
+ для правильной работы некоторых программ, таких как MTA. Для этих целей можно использовать
+ специальное полное доменное имя localhost.localdomain.Создайте файл /etc/hosts, выполнив команду:cat > /etc/hosts << "EOF"
# Begin /etc/hosts
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 <FQDN><HOSTNAME>
-<192.168.0.2><FQDN><HOSTNAME>[alias1] [alias2] ...
-::1 localhost ip6-localhost ip6-loopback
+<192.168.0.2><FQDN>[alias1] [alias2] ...
+::1 ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# End /etc/hosts
EOF
- Значения <192.168.0.2>,
- <FQDN>, и
- <HOSTNAME> должны быть изменены на необходимые в
+ Значения <192.168.0.2> и
+ <FQDN> должны быть изменены на необходимые в
соответствии требованиями сети (если имеется IP-адрес выданный сетевым/системным администратором
и машина подключена к существующей сети). Необязательные параметры могут быть опущены, а строку
<192.168.0.2> можно опустить, если вы используете подключение,
- настроенное с помощью DHCP или автоматической настройки IPv6.
+ настроенное с помощью DHCP или автоматической настройки IPv6, или используя
+ localhost.localdomain в качестве полного доменного имени.
- Запись ::1 является IPv6-аналогом 127.0.0.1 и представляет loopback-интерфейс IPv6.
- 127.0.1.1 — это зарезервированная специально для FQDN запись.
+ /etc/hostname не содержит записей для
+ localhost, localhost.localdomain или имени хоста
+ (без домена), поскольку они обрабатываются модулем NSS
+ myhostname, прочтите справочную страницу
+ nss-myhostname(8) для получения подробной информации.
+
+ Запись ::1 является IPv6-аналогом 127.0.0.1 и представляет loopback-интерфейс IPv6.
From d3d3bbf9fbe85f94c9304aef508624f3e6e646d7 Mon Sep 17 00:00:00 2001
From: Poltern <2363951+Poltern@users.noreply.github.com>
Date: Fri, 15 Sep 2023 22:49:46 +0500
Subject: [PATCH 3/3] libstdc++: Remove one more .la file
---
chapter05/libstdc++.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chapter05/libstdc++.xml b/chapter05/libstdc++.xml
index a13b1cd..ab795da 100644
--- a/chapter05/libstdc++.xml
+++ b/chapter05/libstdc++.xml
@@ -119,7 +119,7 @@ cd build
Удалите архивные файлы libtool, поскольку они потенциально опасны при
кросс-компиляции:
-rm -v $LFS/usr/lib/lib{stdc++,stdc++fs,supc++}.la
+rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la