opennet.ru полные новости

Channel
Logo of the Telegram channel opennet.ru полные новости
@opennet_fullPromote
120
subscribers
Полные тексты новостей OpenNet про opensource, Linux, BSD и компьютерную безопасность
Выпуск набора утилит GNU Coreutils 9.6

Опубликована стабильная версия набора базовых системных утилит GNU Coreutils 9.6, в состав которого входят такие программы, как sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls и т.д.


Ключевые новшества:


- В утилиту cksum добавлена опция "-a crc32b" для расчёта контрольных сумм в соответствии со спецификацией ITU V.42, используемой, например, в gzip. Добавлена оптимизация производительности с использованием инструкции pclmul. Для ускорения работы команды "cksum -a crc" задействованы SIMD-расширения AVX2, AVX512 и ARMv8, в тестах сокращающие время вычислений на 40%, 60% и 80%, соответственно.


- В утилиту ls добавлена опция "--sort=name" для явного выставления сортировки по имени файла.

- В printf добавлена поддержка представленных с стандарте POSIX:2024 индексированных аргументов в формате "%<i>$", где '<i>' целочисленный номер аргумента.

- В утилиту test добавлена возможность использования операторов '' со строками (POSIX:2024).

- В утилиту timeout добавлены появившиеся в стандарте POSIX:2024 опции "-f" и "-p", являющиеся короткими вариантами опций "--foreground" и "--preserve-status".


- В утилите sort ускорены операции над файлами в псевдо-ФС, таких как /proc.
- В утилиты stat и tail добавлена поддержка типов ФС "bcachefs" и "pidfs". Для вывода типа ФС добавлена команда "stat -f -c%T". В команде "tail -f" задействован механизм inotify для ФС "bcachefs" и "pidfs".

- В утилите wc минимальный размер читаемого за раз блока увеличен с 16KiB до 256KiB. При чтении прокэшированных файлов производительность "wc -l" повышена примерно на 10%.






https://opennet.ru/62577/
Выпуск Cozystack 0.22, открытой PaaS-платформы на базе Kubernetes

Доступен выпуск свободной PaaS-платформы Cozystack 0.22.0, построенной на базе Kubernetes. Проект нацелен на предоставление готовой платформы для хостинг-провайдеров и фреймворка для построения частных и публичных облаков. Платформа устанавливается напрямую на серверы и охватывает все аспекты подготовки инфраструктуры для предоставления управляемых сервисов. Cozystack позволяет запускать и предоставлять кластеры Kubernetes, базы данных и виртуальные машины. Код платформы доступен на GitHub и распространяется под лицензией Apache-2.0.



В качестве базового стека технологий используется Talos Linux и Flux CD. Образы с системой, ядром и необходимыми модулями формируются заранее, и обновляются атомарно, что позволяет обойтись без таких компонентов как dkms и пакетный менеджер, и гарантировать стабильную работу. Предоставляется простой метод установки в пустом дата-центре с помощью PXE и debian-подобного установщика talos-bootstrap.



Платформа включает свободную реализацию сетевой инфраструктуры (fabric) на базе Kube-OVN, и использует Cilium для организации сервисной сети, MetalLB для анонса сервисов наружу. Хранилище реализовано на LINSTOR, где предлагается использование ZFS в качестве базового слоя для хранилища и DRBD для репликации. Имеется преднастроенный стек мониторинга на базе VictoriaMetrics и Grafana. Для запуска виртуальных машин используется технология KubeVirt, которая позволяет запускать классические виртуальные машины прямо в контейнерах Kubernetes и уже имеет все необходимые интеграции с Cluster API для запуска управляемых Kubernetes-кластеров внутри "железного" Kubernetes-кластера.


В новой версии добавлен cozystack-controller и новые сущности: Workload и WorkloadMonitor &#8212; которые позволяют следить за состоянием pod-ов, управляемых операторами, и оценивать уровень сервиса по заранее определённым правилам. Приложения в Cozystack управляются разными операторами, поэтому было решено создать единый формат для отображения статуса каждого сервиса.


Как это работает: При развёртывании приложения устанавливается и WorkloadMonitor, который следит за состоянием pod-ов по селектору. Как только под селектор попадает один из pod-ов, для него создаётся новая сущность Workload, которая отображает роль для каждого pod-а и его состояние. В статусе WorkloadMonitor можно увидеть количество существующих реплик и минимальное количество реплик, необходимое для обслуживания сервиса. Как только нагрузка (workload) становится меньше, чем значение minReplicas для WorkloadMonitor, сервис помечается неработающим (non-operational).


Для приложений, которым нельзя задать точное значение minReplicas (например, worker-ы Kubernetes могут масштабироваться автоматически), реализована возможность вообще не указывать это значение в WorkloadMonitor. В этом случае WorkloadMonitor просто будет считать общее количество запущенных экземпляров.


Такой механизм позволяет использовать любые операторы и механизмы управления pod-ами в Kubernetes и легко расширять платформу, предоставляя единый интерфейс для отображения текущего состояния сервиса.


WorkloadMonitor для сбора информации о репликах и их работоспособности добавлен в приложения Kubernetes, Postgres, Monitoring, VirtualMachine, VMInstance, Redis, etcd и SeaweedFS. Dashboard Cozystack теперь отображает количество реплик приложения и уровень сервиса для каждой группы Workload.



Другие изменения:


- Реализованы и опубликованы под лицензией Apache 2.0 клиент и сервер телеметрии. Сбор метрик для телеметрии осуществляется в соответствии с рекомендациями "LF Telemetry Data Collection and Usage Policy" и его можно отключить с помощью опции "telemetry-enabled: false" в конфигурации Cozystack. Сами данные анонимы и полностью обезличены. К следующим релизам платформы планируется собрать публичный Dashboard на основе данных телеметрии.


- Обновлён компонент clust...

https://opennet.ru/62576/
Уязвимость в pam-u2f, позволяющая обойти аутентификацию на базе аппаратного токена

Разработчики проекта openSUSE выявили уязвимость (CVE-2025-23013) в PAM-модуле pam-u2f, применяемом при аутентификации через токены YubiKey,
Yubico Security Key, YubiHSM и другие FIDO-устройства, поддерживающие протокол U2F (Universal 2nd Factor). Уязвимость позволяет пользователю, имеющему непривилегированный локальный доступ к системе, в определённых конфигурациях PAM пройти аутентификацию без вставки аппаратного токена. На практике модуль pam-u2f как правило подключается для двухфакторной или беспарольной аутентификации с использованием токенов (например, для подтверждения полномочий выполнения команд через утилиты su и sudo).


Уязвимость вызвана некорректным возвращением функцией pam_sm_authenticate() значения PAM_IGNORE. Данное значение возвращается в случае ошибки выполнения вызовов gethostname(), pam_modutil_drop_priv(), pam_modutil_regain_priv() или resolve_authfile_path(), а также при проблемах выделения памяти в strdup() или calloc(). Проблема в том, что библиотека libpam, получив от PAM-модуля результат с кодом PAM_IGNORE, вернёт итоговый код PAM_SUCCESS, обозначающий успешное прохождение аутентификации, если в цепочке проверок какой-то другой PAM-модуль вернул успешный результат аутентификации.


При использовании модуля pam-u2f в связке с pam_unix для двухфакторной аутентификации, уязвимость позволяет успешно пройти аутентификацию в случае успешной проверки пароля, без подтверждения второго фактора. При выполнении беспарольной аутентификации по аппаратному токену pam-u2f может применяться в связке с PAM-модулем pam_faillock, ограничивающим число попыток аутентификации и возвращающим PAM_SUCCESS, если лимит не исчерпан.



В качестве примера атаки называется обход проверки токена при выполнении локальным пользователем привилегированных команд, используя утилиты sudo и su. Во время запуска этих команд атакующий может создать условия для возвращения модулем pam-u2f значения PAM_IGNORE, например, через исчерпание доступной памяти. Проблема устранена в версии pam-u2f 1.3.1.







https://opennet.ru/62575/
Обход дискового шифрования, использующего TPM2 для автоматической разблокировки

Один из сопровождающих пакеты в NixOS представил технику атаки, позволяющую получить доступ к данным на зашифрованных дисковых разделах, в конфигурациях, не требующих ввода пароля разблокировки при загрузке, благодаря размещению в TPM2 (Trusted Platform Module) информации для расшифровки. Такие конфигурации часто используются на серверах или многопользовательских рабочих станциях, на которых проблематично после каждой перезагрузки вручную вводить пароль.


При применении подобного метода шифрования дисков, расшифровка выполняется с использованием дополнительного ключа, хранимого в TPM и выдаваемого только при подтверждении исходного состояния системы. Состояние системы сохраняется в виде хэшей в регистрах PCR (Platform Configuration Register) и привязывается к цифровой подписи, которой заверен загрузчик, а также к контрольным суммам загрузчика и начального загрузочного окружения (initrd). Доступ к ключу в TPM предоставляется только когда все привязанные к нему регистры PCR находятся в том же состоянии, что и при сохранении ключа.




Подразумевается, что цепочка загрузки операционной системы верифицируется при помощи UEFI Secure Boot и доступ к ключам можно получить только из немодифицированного образа initrd. При успешной проверке диск автоматически разблокируется, но доступ к расшифрованным данным можно получить только через вход в свою учётную запись в системе. При обращении без верифицированной загрузки или при попытке замены или внесения изменений в initrd с целью перехвата ключей, цепочка доверия будет нарушена, состояние регистров PCR
изменится и TPM2 не отдаст сведения, необходимые для расшифровки.



Опубликованный метод атаки позволяет обойтись без изменения содержимого initrd в конфигурациях, не идентифицирующих шифрованные разделы LUKS. Отмечается, что включение подобной проверки разделов не описывается во всех найденных инструкциях по настройке дискового шифрования, так как идентификация раздела заметно усложняет конфигурацию (требуется привлечение дополнительного регистра PCR для проверки ключа раздела и генерация initrd с учётом его значения).


Примеры совершения атаки продемонстрированы для Fedora Linux в связке с инструментарием clevis и для NixOS в связке с systemd-cryptenroll. Для совершения атаки необходим физический доступ к компьютеру и возможность извлечения накопителя.


Метод основывается на том, что атакующий может заменить существующий корневой шифрованный раздел на собственный зашифрованный раздел, созданный с тем же UUID-идентификатором и известными атакующему ключами расшифровки. Окружение initrd передаст управление init-процессу в разделе атакующего. Так как содержимое initrd не было изменено, состояние TPM не будет нарушено и получив управление в своём окружении атакующий cможет использовать TPM для расшифровки ключа исходного дискового раздела.


Атака сводится к следующим шагам:


- Извлечение диска и проведение на другом компьютере анализа незашифрованных данных в разделе /boot. Определение информации о зашифрованном разделе и его UUID-идентификаторе из initrd-образа, находящегося в разделе /boot.

- Создание резервной копии первых 64МБ зашифрованного LUKS-раздела.
- Замена указанных 64МБ на образ с собственным корневым разделом, зашифрованным с использованием известного атакующему ключа и имеющим UUID-идентификатор как у старого раздела.
- Возвращение диска в исходный компьютер и загрузка с подменённым корневым разделом. Так как автоматическая разблокировка по ключу из TPM для подменённого раздела завершается неудачей, initrd выводит запрос для ручного ввода пароля.
- Получение из TPM исходного ключа, используя метаданные о TPM и зашифрованный токен из LUKS-заголовка старого раздела.
- Перестановка диска на компьютер атакующего, восстановление перезаписанной части LUKS-раздела из резервной копии и использование полученного исходного ключа дл...

https://opennet.ru/62574/
В GCC 15 решено убрать поддержку ABI ARM64 ILP32

В кодовую базу GCC, используемую для формирования ветки GCC 15, внесено изменение, удаляющее поддержку ABI ARM64 ILP32. ILP3 напоминает субархитектуру x32 для систем x86_64 и также позволяет использовать 32-разрядные указатели и 32-разрядную модель адресации памяти, при работе процессора в 64-разрядном режиме с поддержкой 64-разрядных регистров и расширенных инструкций. Ограничением ABI ILP32 является невозможность адресации из приложения более 4 ГБ памяти.


Изначально ABI ILP32 был разработан для упрощения переноса 32-разрядных приложений на 64-разрядные процессоры AArch64, но не получил должного распространения. Поддержка ILP32 так и не была принята в ядро Linux и системную библиотеку Glibc. Отдельно развивались порты Linaro и Debian для ILP32, но они уже более пяти лет находятся в заброшенном состоянии. Из редких систем, поддерживающих ILP32, отмечена операционная система watchOS, применяемая в устройствах Apple Watch, но GCC не поддерживается для данной ОС.





https://opennet.ru/62568/
Релиз дистрибутива Linux Mint 22.1

Представлен релиз дистрибутива Linux Mint 22.1, продолжающий развитие ветки на пакетной базе Ubuntu 24.04 LTS. Дистрибутив полностью совместим с Ubuntu, но существенно отличается подходом к организации интерфейса пользователя и подбором используемых по умолчанию приложений. Разработчики Linux Mint предоставляют десктоп-окружение, соответствующее классическим канонам организации рабочего стола, которое является более привычным для пользователей, не принимающих новые методы построения интерфейса GNOME 3. Для загрузки доступны DVD-сборки на базе оболочек MATE (3 ГБ), Cinnamon (3 ГБ) и Xfce (3 ГБ). Ветка Linux Mint 22 отнесена к выпускам с длительным сроком поддержки (LTS), обновления для которых будут формироваться до 2029 года.




Основные изменения в Linux Mint 22.1:





- Модернизирован стек управления пакетами, связанный с пакетным менеджером APT. Вместо инструментария aptdaemon задействован собственный сервис Aptkit, также реализующий фоновый процесс и DBus-интерфейс для выполнения непривилегированными пользователями операций управления пакетами. Вместо приложений, использующих aptdaemon, таких как GDebi, synaptic и apturl, реализован новый интерфейс установки пакетов Captain, который можно вызвать из других приложений при попытке открытия файлов с расширением deb или задействовать в качестве обработчика URL "apt://pkgname".




Отмечается, что основанный на aptdaemon инструментарий устарел, не развивается основным проектом и сопровождается через накопление отдельной коллекции патчей в дистрибутивах. Замена aptdaemon позволила решить проблемы с локализацией и переводом в средствах управления пакетами; избавила дистрибутив от компонентов, оставшихся без сопровождения; упростила архитектуру; сократила трудозатраты разработчиков. Переход на Aptkit позволил реализовать в приложении Software Sources графический режим для отката на прошлые версии для пакетов, отсутствующих в репозиторих Ubuntu. В приложении Update Manager удалось улучшить поддержку Wayland и обновить код для многопоточного и многопроцессного выполнения операций.




- Реализована поддержка профилей энергопотребления, позволяющих пользователю выбрать приемлемый для себя баланс между энергопотреблением и производительностью. Доступно три режима: экономия энергии, высокая производительность и сбалансированный. В среде рабочего стола Cinnamon режим можно выбрать в секции конфигуратора "Preferences &#8594; Power Management" или через апплет в панели. В Xfce и MATE выбор режима осуществляется командой "powerprofilesctl set power-saver|performance|balanced".



- Среда рабочего стола Cinnamon обновлена до выпуска 6.4.



- Интегрирован режим ночной подсветки ("Night Light"), который меняет цветовую температуру в зависимости от времени суток и может использоваться в окружениях на базе X11 и Wayland. При работе в ночное время автоматически уменьшается интенсивность синего цвета на экране, что делает цветовую гамму более тёплой для снижения напряжения глаз и сокращения факторов возникновения бессонницы при работе перед сном.



- Предложена новая тема оформления, которая отличается использованием более тёмных цветов, выраженным контрастом, скруглением элементов интерфейса и увеличенными отступами между апплетами и панелью.




- Изменено оформление диалоговых окон. Добавлена возможность использования цветных кнопок в диалогах. Для отрисовки ключевых всплывающих диалоговых окон задействована библиотека Clutter. Переделан диалог для принудительного завершения работы приложений, показываемый в случае зависания программы и прекращения её реагирования на действия пользователя.




- Переработан внешний вид экранных индикаторов (OSD), используемых при изменении яркости и громкости медиа-кнопками, а также при переключении виртуальных рабочих столов.



- Улучшен интерфейс смены задач по Alt-tab. Добавлена опция для ...

https://opennet.ru/62570/
Выпуск web-браузера Chrome 132

Компания Google опубликовала релиз web-браузера Chrome 132. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей RLZ-параметров при поиске. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 133 запланирован на 4 февраля.


Основные изменения в Chrome 132:



- Добавлена эвристика, автоматически включающая функцию "HTTPS-First", перенаправляющую HTTP-запросы на HTTPS, для пользователей, которые в своей практике обычно используют HTTPS. Если пользователь не согласен с включением "HTTPS-First", он может принудительно отключить данный режим в настройках. При активном "HTTPS-First" работа с сайтами, не поддерживающими HTTPS, выполняется через откат на HTTP, если после перенаправления не удаётся выполнить запрос по HTTPS или возникают проблемы с сертификатами. При недоступности варианта с HTTPS перед открытием сайта по HTTP выводится специальное предупреждение.



- Расширены возможности поиска при помощи сервиса Google Lens ("Поиск с объективом"), вызываемого через контекстное меню. Помимо поиска по изображениям и выделенному тексту добавлена поддержка задания вопросов на естественном языке, связанных с содержимым web-страниц и PDF-документов. Для отправки вопроса следует вызвать интерфейс поиска через Google Lens через меню и ввести вопрос в верхней части появившейся боковой панели. Расширено число языков, доступное в функции наложения перевода (переведённый текст показывается поверх исходного текста на изображении).






- Для платформы Windows предоставлена поддержка sandbox-изоляции процесса, обеспечивающего работу сетевого сервиса. Для включения изоляции добавлена опция "--enable-features=NetworkServiceSandbox". Проверить режимы изоляции можно на странице "chrome://sandbox/".

- В настройки добавлена возможность выборочной загрузки паролей и адресов, ранее сохранённых на локальной системе, в облачное хранилище, привязанное к учётной записи Google.



- В десктоп-сборках вместо настройки синхронизации между устройствами с использованием отдельной учётной записи, предоставлена возможность привязи браузеров пользователя к учётной записи Google, применяемой в таких сервисах как Gmail и Gooрle Docs. Например, при входе на сайт Gmail теперь будет предлагаться войти с этой учётной записью в Chrome для сохранения и синхронизации открытых вкладок, настроек, истории, закладок, паролей, адресов, дополнений, тем и PWA-приложений.





- Добавлена настройка "chrome://flags/#enable-user-link-capturing-pwa", при активации которой переход по ссылкам, связанным с установленным Web-приложением (PWA), приводит к открытию обычного сайта и появлению в адресной строке индикатора для переключение на использование web-приложения. До этого открытие подобных ссылок сразу приводило к переходу к web-приложению, без возможности работы со страницей как с обычным сайтом.





- Для элемента <dialog> реализованы события "beforetoggle" и "toggle" (ToggleEvent), позволяющее определять моменты открытия и закрытия диалога, и вызывать свои обработчики на стадии до начала показа/закрытия диалога или когда диалог уже показан или закрыт. При вызове метода showModal или show события ToggleEvent генерируются со значением "open" в параметре newState, а при закрытии диалога со значением "closed".

- Обеспечена генерация исключения InvalidStateError при вызове методов showPopover() и showModal() для элементов c атрибутом "popover" или элементов "di...

https://opennet.ru/62562/
Превращение сборки Fedora c KDE в базовую редакцию дистрибутива

Разработчики проекта Fedora опубликовали план поставки сборки со средой рабочего стола KDE в форме базовой редакции дистрибутива, идентичной по уровню поддержки со сборкой Fedora Workstation, поставляемой с GNOME. Ранее изменение статуса сборки Fedora с KDE утвердил управляющий совет проекта Fedora. Теперь реализация новой первичной редакции в выпуске Fedora 42 будет рассмотрена комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива.



Сборка Fedora KDE Plasma Desktop Edition начнёт преподноситься на равных со сборкой на базе GNOME, получит аналогичный уровень маркетингового продвижения и будет иметь такое же представление на сайте fedoraproject.org. Специфичные для KDE серьёзные проблемы будут рассматриваться как блокирующие релиз, так же, как ранее блокировали релиз серьёзные проблемы в GNOME.





https://opennet.ru/62567/
Live-сборки Fedora намерены перевести со SquashFS на EROFS

В выпуске Fedora 42, намеченном на конец апреля, планируется перевести все Live-сборки дистрибутива со SquashFS на файловую систему EROFS, поддержка которой в прошлом году была реализована в инструментарии для создания загрузочных образов Dracut 103. Предложение пока не утверждено комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива Fedora.


В качестве причин перехода упоминается более активная разработка EROFS (последний выпуск инструментария SquashFS был весной 2023 года) и наличие в EROFS расширенных возможностей, которые могут быть задействованы в будущем. На EROFS намерены перевести все сборки, использующие системный образ в режиме только для чтения, например, Live-сборки
с KDE, Xfce, Budgie, LXQt, MiracleWM и COSMIC, а также редакции Fedora KDE Plasma Mobile и Fedora CoreOS Live.



Файловые системы SquashFS и EROFS предназначены для работы в режиме "только для чтения" и обеспечивают компактное представление метаданных и хранение данных в сжатом виде. ФС EROFS (Extendable Read-Only File System) создана компанией Huawei и сосредоточена на достижении максимальной производительности. В EROFS применяется отличающийся от других ФС метод сжатия данных, суть которого в использовании результирующих сжатых блоки фиксированного размера (в других ФС блоки фиксированы до сжатия, а после сжатия размер получается разный). При случайном доступе к данным EROFS в разы обгоняет Ext4 (при уровне сжатия 4 на Flash ФС EROFS оказалась быстрее почти в три раза, а не жёстком диске в 6 раз).





https://opennet.ru/62566/
Обновление редактора кода CudaText 1.220.6

Опубликован выпуск кроссплатформенного свободного редактора кода CudaText 1.220.6, написанного с использованием Free Pascal и Lazarus. Редактор поддерживает расширения на Python, и имеет ряд преимуществ над Sublime Text. Присутствуют некоторые возможности интегрированной среды разработки, реализованные в виде плагинов. Для программистов подготовлено более 300 синтаксических лексеров. Код распространяется под лицензией MPL 2.0. Сборки доступны для платформ Linux, Windows, macOS, FreeBSD, OpenBSD, NetBSD, DragonflyBSD, Solaris и Haiku.



Среди новых возможностей, реализованных после прошлого анонса:



- Новые плагины в Plugins Manager:


- HotSpots: панель для перехода ко всем существующим закладкам документов, и к изменениям в Git.
- Scope Description: в коде на C/C++ показывает первую строку заголовка функции около конца функции.
- Font Preview: предпросмотр файлов шрифтов в веб-браузере.
- Clipboard Catcher: сохраняет все изменения в буфере обмена по таймеру.
- Codeium: ИИ-функции для автодополнения.
- Markdown Image: показывает картинки, на которые ссылается текущий Markdown-документ.


- Новые лексеры:


- PureBasic
- Ring
- Ziggy
- Common Lisp
- PureScript
- Gleam
- foobar2000 title formatting
- Pkl
- Roc
- ReScript
- Vimscript
- Heta
- Structured Text
- Todo.txt (www.todotxt.org)
- SystemTap
- EdgeQL-ESDL
- Mojo
- Pixilang
- MDX





https://opennet.ru/62563/
Обновление Git с устранением уязвимостей

Опубликованы корректирующие выпуски распределённой системы управления исходным кодом Git 2.48.1, 2.41.3, 2.42.4, 2.43.6, 2.44.3,
2.45.3, 2.46.3 и v2.47.2, в которых устранены две уязвимости:



- CVE-2024-50349 - возможность подмены информации в интерактивном запросе пароля к репозитирию. Проблема вызвана отсутствием должной проверки имени хоста, в котором допускалось кодирование символов в формате %xx (URL Encoding). Атакующий мог использовать процентное кодирование для добавления в имя хоста escape-последовательностей, манипулирующих выводом на терминал.


Таким способом, можно заменить текст приглашения аутентификации и создать у пользователя ощущение обращения к другому репозиторию, чтобы при обращении к репозиторию атакующего пользователь ввёл логин и пароль от другого хоста. Атака может быть совершена при выполнении рекурсивного клонирования субмодулей командой "git clone --recurse-submodules", при котором один из субмодулей может запросить пароль от другого хоста, но ввод будет отправлен на хост с репозиторием атакующего.


- CVE-2024-52006 - в реализации протокола "credential helper", применяемого для передачи учётных данных при обращения к репозиторям c ограниченным доступом, выявлена недоработка, позволяющая подставить в данные символ возврата каретки через указание специально оформленного URL. Так как протокол манипулирует построчными данными, добавление возврата каретки может использоваться для разделения блоков данных и организации передачи пароля не на тот сервер. Возможность совершения атаки зависит от интерпретации символа возврата каретки в качестве разделителя строки в различных реализациях протокола "credential helper". Например, проблеме подвержен Git Credential Manager, написанный на C#/.NET.





Пользователям, не имеющим возможность обновить Git, рекомендуется воздержаться от обращения к непроверенным внешним репозиториям при помощи команды "git clone" с флагом "--recurse-submodules", а также исключить использование обработчиков учётных данных при клонировании публичных репозиториев. Помимо самого Git исправления для блокирования данных уязвимостей выпущены для GitHub Desktop (CVE-2025-23040), Git LFS (CVE-2024-53263) и Git Credential Manager (CVE-2024-50338).


https://opennet.ru/62561/
Музыкальный проигрыватель Decibels принят в основной состав GNOME

Разработчики проекта GNOME приняли минималистичный музыкальный проигрыватель Decibels в основной состав среды рабочего стола GNOME. Decibels начнёт поставляться в весеннем выпуске GNOME 48 под именем "Audio Player". В прошлом году проигрыватель уже был принят в базовую поставку дистрибутива Endless OS, а также был включён по умолчанию в GNOME-редакции дистрибутива для смартфонов postmarketOS. Код Decibels написан на языке TypeScript с использованием JavaScript-обвязок над GStreamer, Libadwaita, Gio, GObject и GTK4, и распространяется под лицензией AGPLv3. Готовые пакеты сформированы в формате Flatpak.






Программа отличается очень простым интерфейсом, оптимизированным для воспроизведения отдельных звуковых файлов при попытке их открытия в других приложениях, например, в файловом менеджере или почтовом клиенте. В окне визуализируется форма звуковой волны, имеется ползунок для быстрой смены позиции, переключатель скорости воспроизвения, регулятор громкости и кнопки для быстрой перемотки на 5 и 10 секунд вперёд и назад. Поддерживаются тёмный и светлый режимы оформления. Интерфейс универсальный и адаптируется как для крупных экранов ПК и ноутбуков, так и для узких сенсорных экранов смартфонов.












https://opennet.ru/62560/
В готовящемся в релизу ядре Linux 6.13 выявлен сбой, вызванный кодом сотрудника Microsoft

Линус Торвальдс намеревался опубликовать релиз ядра Linux 6.13 в это воскресенье, но скорее всего тестирование ветки 6.13 будет отложено на неделю из-за выявления проблем со стабильностью в изменениях, подготовленных сотрудником Microsoft и принятых в ветку 6.13 в ноябре. Дополнительно отмечается, что патч, ставший причиной сбоя, был подан нестандартно - но был принят, хотя не получил ни одного подтверждения (ACK) от мэйнтайнеров архитектуры x86, что является нарушением общепринятых практик.


Патч добавлял возможность использования больших страниц памяти в режиме ROX (Read Only Execute) при выделении памяти, предназначенной для размещения исполняемого кода. ROX позволяет использовать память с исполняемым кодом в режиме только для чтения, что усложняет эксплуатацию некоторых уязвимостей. В ядре 6.13 для исполняемого кода модулей на системах x86_64 по умолчанию было включено использование кэша больших исполняемых страниц памяти, отражённых как ROX. Изменение решало проблему с маппингом в режиме ROX страниц для ещё полностью не сформированного исполняемого кода и позволяло обойтись без временного репаминга ROX-страниц в режим записи до завершения подготовки модуля ядра к работе.



На финальном этапе тестирования ядра 6.13 инженер из компании Intel выявил сбой, не позволяющий ядру корректно выйти из спящего режима на некоторых ноутбуках с процессорами Intel (например, с CPU на базе микроархитектуры Alderlake). Сбой проявлялся при сборке ядра компилятором Clang с включённым режимом защиты CFI (Control Flow Integrity), блокирующим нарушения нормального порядка выполнения (control flow) в результате применения эксплоитов, изменяющих хранимые в памяти указатели на функции. В качестве временного решения мэйнтейнеры архитектуры x86 в ядре из компаний Intel и AMD предложили отключить использование ROX в ядре 6.13, до того как буде подготовлен и протестирован полноценный патч, решающий проблему (первый вариант исправления не решил проблему).



https://opennet.ru/62555/
В Rsync 3.4.0 устранены уязвимости, позволявшие выполнить код на сервере и клиенте

Опубликован релиз утилиты для синхронизации файлов Rsync 3.4.0, в котором устранено шесть уязвимостей. Комбинация уязвимостей CVE-2024-12084 и CVE-2024-12085 позволяет клиенту добиться выполнения своего кода на сервере. Для совершения атаки достаточно анонимного подключения к серверу Rsync с доступом на чтение. Например, атака может быть совершена на зеркала различных дистрибутивов и проектов, предоставляющих возможность загрузки сборок через Rsync. Проблема также затрагивает различные приложения для синхронизации файлов и резервного копирования, использующие Rsync в качестве бэкенда, такие как Rclone, DeltaCopy и ChronoSync.


Более того, эксплуатировав уязвимость на сервере атакующий может организовать атаку на подключающихся к серверу клиентов и добиться чтения или записи любых файлов в их системе, насколько это позволяют права доступа процесса rsync. Например, через создание вредоносных rsynс-серверов можно организовать загрузку SSH-ключей или добиться выполнения кода, перезаписав такие файлы, как ~/.bashrc и ~/.popt.



Для упрощения проверки обновления серверов до новой версии Rsync номер протокола в выпуске Rsync 3.4.0 повышен до 32. Проследить за появлением обновлений в дистрибутивах можно на следующих страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.



Выявленные уязвимости:



- CVE-2024-12084 - запись за пределы выделенного буфера через передачу некорректной контрольной суммы, размер которой превышает 16 байт.



- CVE-2024-12085 - утечка содержимого неинициализированных данных из стека (по одному байту за раз) при выполнении операций сравнения контрольных сумм некорректного размера.


- CVE-2024-12086 - получение доступа к содержимому произвольных файлов из системы клиента через генерацию сервером некорректных коммуникационных токенов и контрольных сумм в процессе копирования файлов от клиента на сервер (определение содержимого байт за байтом через подбор контрольной суммы).


- CVE-2024-12087 - выход за пределы базового каталога при использовании опции "--inc-recursive" (включается по умолчанию для многих флагов). Уязвимость вызвана отсутствуем должной проверки символических ссылок и позволяет записать файлы за пределами указанного клиентом целевого каталога. Подконтрольный атакующим сервер может использовать уязвимость для атаки на систему подключившегося клиента.





- CVE-2024-12088 - некорректная проверка символических ссылок, указывающих на другие символические ссылки, при использовании опции "--safe-links", позволяющая выйти за пределы базового каталога и записать данные в любой файл в системе, насколько это позволяют права доступа.

- CVE-2024-12747 - состояние гонки при работе с символическими ссылками, позволяющее пользователю повысить свои привилегии в системе через получение доступа к привилегированным файлам на сервере.




https://opennet.ru/62557/
Обновление Firefox 134.0.1 c устранением зависаний в YouTube и Google Docs

Доступен корректирующий выпуск Firefox 134.0.1, в котором устранено несколько проблем:


- Устранены зависания интерфейса, проявляющиеся при работе в Google Docs или просмотре YouTube.
- Исправлена ошибка, приводившая к аварийному завершению при попытке запуска после обновления с версии Firefox 133.

- Решена проблема с нарушением работы контекстных меню и меню выбора поисковой системы, в случае, если пользователь ранее откатывал Firefox до более ранней версии.





Дополнительно можно отметить тестирование в ночных сборках Firefox переработанной страницы открытия новой вкладки, на которой обеспечено объединение секций в тематические категории и реализована модульная компоновка блоков с контентом вместо отображения в форме карт. Для включения в about:config предусмотрены настройки
browser.newtabpage.activity-stream.discoverystream.sections.enabled и
browser.newtabpage.activity-stream.discoverystream.sections.cards.enabled.



В адресной строке реализована поддержка поиска групп вкладок по имени. Добавлена возможности для назначения пользователем собственных клавиатурных комбинаций для браузерных дополнений, используя клавиши F13-F19. Интерфейс для настройки клавиатурных комбинаций для дополнений вызывается через кнопку с изображением шестерёнки на странице about:addons.



https://opennet.ru/62556/
Выпуск встраиваемой СУБД libmdbx 0.13.3

Опубликован выпуск библиотеки libmdbx 0.13.3 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией Apache 2.0. Поддерживаются все актуальные операционные системы и архитектуры, а также российский Эльбрус 2000. Для libmdbx предлагается развитое API для C++, а также поддерживаемые энтузиастами привязки к языкам Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.



Исторически libmdbx является глубокой переработкой СУБД LMDB и превосходит своего прародителя по надёжности, набору возможностей и производительности. В сравнении с LMDB, в libmdbx большое внимание уделяется качеству кода, стабильной работе API, тестированию и автоматическим проверкам. Поставляется утилита проверки целостности структуры БД с некоторыми возможностями восстановления. Технологически libmdbx предлагает ACID, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам ЦПУ. Поддерживается автокомпактификация, автоматическое управление размером БД, оценка объёма выборок по диапазонам (range query estimation).



Основные изменения:

- Ветка 0.13.x получила статус стабильной. Началась разработка ветки 0.14.x.
- В C API добавлена функция mdbx_cursor_count_ex(), позволяющая получить как количество мульти-значений соответствующих текущему ключу, так и информацию о вложенном дереве, хранящем эти значения.
- В C++ API добавлен метод mdbx::txn::make_broken() аналогичный mdbx_txn_break().
- В утилитах mdbx_copy, mdbx_drop, mdbx_dump, mdbx_load, mdbx_stat реализовано логирование ошибок, предупреждений и важных сообщений от libmdbx.
- Изменение поведения:

- При включении профилирования сборщика мусора (сборка с опцией MDBX_ENABLE_PROFGC=ON) теперь подсчитываются затраты времени CPU на слияние списков страниц, т.е. на работу функции pnl_merge().
- В утилите тестирования значение режима данных переименовано из data.dups в data.multi.- Доработан контроль длины ключа внутри cursor_seek().- Если посредством mdbx_env_set_option(MDBX_opt_txn_dp_limit) пользователем не задано собственно значение, то выполняется подстройка dirty-pages-limit при старте каждой не вложенной пишущей транзакций, исходя из объёма доступного ОЗУ и размера БД.- В режиме MDBX_NOSTICKYTHREADS допускается commit/abort вложенных транзакций из любого треда/потока.- При попытке запуска вложенных транзакций в режиме MDBX_WRITEMAP производится логирование и возврат ошибки MDBX_INCOMPATIBLE.- В C++ API в конструкторах/инициализаторах и методах, связанных с формированием геометрии БД, по умолчанию используются только default-значения.- Внутри mdbx_env_set_geometry() доработаны эвристики для подбора параметров геометрии БД запрошенных пользователем "по умолчанию".

- Исправления:

- Устранён регресс неразблокировки мьютекса при попытки повторного закрытия dbi-дескриптора, в том числе при попытке явно закрыть дескриптор после удаления связанной с ним таблицы.- Устранён регресс состояния вложенного/dupsort курсора после вставки данных в MDBX_APPEND-режиме.- Поддержка получения boot_id при работе внутри LXC-контейнера.- Устранёна ошибка неверной обработки попытки запуска вложенной читающей транзакции. Теперь в таких ситуациях возвращается ошибка MDBX_EINVAL, так как вложенность поддерживается только для транзакций чтения-записи.- Устранён SIGSEGV-регресс обращения к нулевому адресу при работе в режиме только-чтение без использования LCK-файла, например при размещении БД на носителе доступном только для чтения.







https://opennet.ru/62554/
Доступен Emscripten 4.0, компилятор из C/C++ в WebAssembly

Опубликован выпуск инструментария Emscripten 4.0, позволяющего компилировать код на C/C++ и других языках, для которых имеются фронтэнды на базе LLVM, в универсальный низкоуровневый промежуточный код WebAssembly. Полученный результат можно использовать для интеграции с JavaScript-проектами, запуска в web-браузере, использования в Node.js или создания обособленных многоплатформенных приложений, запускаемых при помощи wasm runtime. Код проекта распространяется под лицензией MIT. В компиляторе используются наработки проекта LLVM, а для генерации WebAssembly и оптимизации задействована библиотека Binaryen.


Основной целью Emscripten заявлено создание инструмента, позволяющего выполнять в Web код независимо от языка программирования, на котором этот код изначально написан. В компилируемых приложениях могут использоваться вызовы стандартных библиотек C и С++ (libc, libcxx), расширения C++, многопоточность на базе pthreads, API POSIX и многие мультимедийные библиотеки. Отдельно предоставляются API для интеграции с Web API и кодом на JavaScript.


Emscripten поддерживает трансляцию вывода библиотеки SDL2 через Canvas, а также реализует поддержку OpenGL и EGL через API WebGL, что позволяет преобразовывать в WebAssembly графические приложения и игры (например, имеется порт тулкита Qt, поддерживаются игровые движки Unreal Engine и Unit, а также движок симуляции физических процессов Bullet).


Помимо компиляции кода на C/C++ отдельно развиваются проекты для запуска в браузерах интерпретаторов и виртуальных машин для языков Lua, C#, Python, Ruby и Perl. Кроме того, возможно применение фронтэндов к LLVM, отличных от Clang, например, фронтэндов для языков, как Swift, Rust, D и Fortran.



Присвоение номера версии 4.0 связано с внесением изменений, нарушающих совместимость на уровне ABI (при пересборке проекта в Emscripten 4.0 потребуется пересборка объектных файлов и библиотек, собранных прошлыми версиями Emscripten). Основные изменения в Emscripten 4.0:


- Добавлена опция "-sWASM_LEAGCY_EXCEPTIONS" для выбора между старым и новым механизмами обработки исключений. По умолчанию продолжает использоваться старый механизм, так как не все браузеры реализовали возможности WebAssembly для работы новых обработчиков исключений.


- Компоненты compiler-rt, libcxx, libcxxabi и libunwind обновлены до ветки LLVM 19.

- Минимально поддерживаемая в сборках версия браузера Safari (настройка MIN_SAFARI_VERSION) повышена с 14.1 до 15.0, что позволило по умолчанию задействовать несколько расширенных возможностей WebAssembly:


- Включено использование новых инструкций для преобразования типа float в int (nontrapping-fptoint), которые вместо генерации исключения при переполнении результата возвращают минимально или максимально возможное значение (необходимо для SIMD).

- Включена опция WASM_BIGINT, при которой для обмена целочисленными 64-разрядными значениями между WebAssembly и кодом на JavaScript применяется тип BigInt.


- Включена опция BULK_MEMORY, при которой для реализации Си-функций memcpy и memset применяются WebAssembly-инструкции memory.copy и memory.fill.




- В функции PATH.basename() отключена нормализация путей (PATH.normalize()), т.е. вызов 'PATH.basename("a/.")' теперь вернёт "." вместо "a", а 'PATH.basename("a/b/..")' вернёт ".." вместо "a".

- При использовании опции "-sMODULARIZE" factory-функции, которые создают и возвращают экземпляры WebAssembly-модулей и объектов для JavaScript, теперь помечены признаком "async" при компиляции в режиме WASM_ASYNC_COMPILATION, применяемом по умолчанию.


- Добавлена возможность указания JavaScript-библиотек, используя опцию "-lfoo.js". В отличие от опции "--js-library" поиск библиотеки выполняется во всех путях, указанных через опцию "-L".

- При компоновке в отладочном режиме (-O0 или -sASSERTIONS) по умолчанию задействован отладо...

https://opennet.ru/62553/
Релиз OpenZFS 2.3.0, реализации ZFS для Linux и FreeBSD

После более года разработки опубликован релиз проекта OpenZFS 2.3.0, развивающего реализацию файловой системы ZFS для Linux и FreeBSD. Проект получил известность как "ZFS on Linux" и ранее ограничивался разработкой модуля для ядра Linux, но после добавления поддержки FreeBSD был признан основной реализацией OpenZFS и переименован.


Работа OpenZFS проверена с ядрами Linux c 4.18 по 6.12 и всеми ветками FreeBSD, начиная с 13.3. Код распространяется под свободной лицензией CDDL. OpenZFS уже используется во FreeBSD и входит в состав дистрибутивов Debian, Ubuntu, Gentoo, NixOS и ALT Linux. Пакеты с новой версией в ближайшее время будут подготовлены для основных дистрибутивов Linux, включая Debian, Ubuntu, Fedora, RHEL/CentOS.



OpenZFS предоставляет реализацию компонентов ZFS, связанных как с работой файловой системы, так и с функционированием менеджера томов. Реализованы компоненты: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) и ZPL (ZFS POSIX Layer). Проект также позволяет использовать ZFS в качестве бэкенда для кластерной файловой системы Lustre. Наработки OpenZFS основаны на оригинальном коде ZFS, импортированном из проекта OpenSolaris и расширенном улучшениями и исправлениями от сообщества Illumos. Проект развивается при участии сотрудников Ливерморской национальной лаборатории по контракту с Министерством энергетики США.


Код распространяется под свободной лицензией CDDL, которая несовместима с GPLv2, что не позволяет добиться интеграции OpenZFS в состав основной ветки ядра Linux, так как смешивание кода под лицензиями GPLv2 и CDDL недопустимо. Для обхода лицензионной несовместимости было решено распространять продукт для Linux целиком под лицензией CDDL в виде отдельно загружаемого модуля, поставляемого отдельно от ядра. Стабильность кодовой базы OpenZFS оценивается как сопоставимая с другими ФС для Linux.


Основные изменения:


- Реализована возможность добавления на лету новых дисков в существующий массив RAIDZ для увеличения размера хранилища без остановки работы и без необходимости создания новой группы накопителей. Перераспределение избыточных данных с учётом новых дисков осуществляется автоматически. Для добавления диска к существующей группе можно использовать команду "zpool attach POOL raidzP-N NEW_DEVICE", а для отслеживания окончания фонового процесса расширения массива - "zpool status".

- Значительно ускорено выполнение операций, связанных с дедупликацией блоков данных. Оптимизации среди прочего затронули формат таблиц дедупликации, поэтому для задействования предложенных оптимизаций в уже существующих пулах необходимо включить опцию "fast_dedup", после чего будет созданы новые таблицы дедупликации, которые будут использованы паралелльно со старыми таблицами.

- Добавлен режим прямого ввода/вывода (Direct IO), позволяющий совершать операции чтения и записи в обход кэша ARC (Adaptive Replacement Cache). Режим позволяет повысить эффективность работы в ситуациях, когда кэширование может негативно влиять на произволительность из-за дополнительных операций копирования в памяти, например, при использовании устройств NVMe.


- В большинство команд (zfs list|get|mount|version, zpool status|list|get|version) добавлена опция "-j" для вывода в формате JSON.

- Допустимый размер имён файлов и каталогов увеличен c 255 до 1023 символов (новый размер выбран с расчётом размещения 255 4-байтовых символов).
- Внесены оптимизации производительности, охватывающие различные части кодовой базы.

- В модуль ядра добавлены опции:


- dmu_ddt_copies

- raidz_expand_max_copy_bytes

- raidz_expand_max_reflow_bytes

- raidz_io_aggregate_rows

- spa_cpus_per_allocator

- spa_num_allocators

- zap_shrink_enabled

- zfetch_max_idistance

- zfs_active_allocator

- zfs_arc_shrinker_seeks

- zfs_dedup_l...

https://opennet.ru/62552/
Выпуск дистрибутива MX Linux 23.5

Опубликован релиз легковесного дистрибутива MX Linux 23.5, созданного в результате совместной работы сообществ, образовавшихся вокруг проектов antiX и MEPIS. Выпуск основан на пакетной базе Debian с улучшениями от проекта antiX и пакетами из собственного репозитория. В дистрибутиве используется система инициализации sysVinit и собственные инструменты для настройки и развёртывания системы. Для загрузки доступны 32- и 64-разрядные сборки (x86_64, i386) с рабочим столом Xfce (2.4 ГБ), а также 64-разрядные сборки с рабочим столом KDE (2.7 ГБ) и сборки (1.8 ГБ) с оконным менеджером Fluxbox.


В новом выпуске:



- Среда рабочего стола Xfce обновлена до выпуска 4.20.

- Осуществлена синхронизация с пакетной базой Debian 12.9. Обновлены версии приложений. Как и в прошлых выпусках по умолчанию продолжает использоваться система инициализации sysVinit, а systemd можно установить в качестве опции.

- Базовый пакет с ядром Linux обновлён до версии 6.1.123. Отдельно подготовлены сборки с расширенной поддержкой оборудования (AHS), которые поставляются с Xfce и ядром 6.12.8 c патчами от проекта liquorix.

- Обновлена сборка MX Raspberry Pi Respin (RPI) для плат Raspberry Pi, поставляемая с Xfce.

- В графическом интерфейсе для установки пакетов
MX Packageinstaller обеспечен показ скриншотов, имеющихся на сайте screenshots.debian.net, а также улучшено отображение версий пакетов из сторонних репозиториев.
- Добавлено предупреждение о попытке включения постоянного хранилища при загрузке с носителя, доступного только для чтения.
- В инталлятор добавлены дополнительные fallback-режимы.












https://opennet.ru/62551/
Выпуск Rust 1.84. Ядра Tock и Vekos, написанные на Rust. Диалект Mini-C

Опубликован релиз языка программирования общего назначения Rust 1.84, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).


Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.


Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.



Основные новшества:


- В пакетном менеджере Cargo стабилизирован механизм обработки зависимостей, выбирающий версии зависимых компонентов с учётом совместимости с версиями компилятора Rust, заявленными как минимально поддерживаемые проектом (MSRV, Minimum Supported Rust Version). Новая возможность позволяет избавить сопровождающих от необходимости ручного выбора старых версий каждой зависимости в проектах, сохраняющих совместимость со старыми версиями инструментария Rust. Новый режим определения зависимостей будет активирован по умолчанию в выпуске Rust 1.85, а пока доступен в формате опции, для включения которой в секции "[resolver]" в файле ".cargo/config.toml" следует указать 'incompatible-rust-versions = "fallback"'.

- Начат перевод компилятора на новый обработчик типов (trait solver), предназначенный для проверки границ применимости типажей, нормализации типов и оценки совместимости типов.
В версии 1.84 новый обработчик задействован для проверки согласованности реализаций типажей, т.е. оценки существования не более одного типажа для рассматриваемого типа с учётом кода из других crate-пакетов. Указанная проверка позволила избавиться от проблем в старой реализации обработчика типов, потенциально способных привести к появлению конфликтов из-за пересечения разных реализаций типажей.


- Предложен новый API "Strict Provenance", который можно использовать для приведения указателя к целому числу и обратно с учётом прикреплённых к указателю метаданных с информацией о его происхождении и области использования (помимо адреса к указателю прикрепляется значение "provenance" с информацией о связи с другими указателями, позволяющей определить где и когда указатель может обращаться к памяти). При приведении указателя к целому числу и обратно возникает неопределённое поведение из-за проблематичности отследить происхождение результирующего указателя. Новый API позволяет выполнять низкоуровневые операции с указателями, такие как сохранение дополнительной информации в младших битах указателя, без приведения указателя к целому числу.


- В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:


- Ipv6Addr::is_unique_local

- Ipv6Addr::is_unicast_link_local

- core::ptr::with_exposed_provenance

- core::ptr::with...

https://opennet.ru/62550/
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily