LINUX.ORG.RU

Rust


264

20

Всего сообщений: 164

Lightning Image Viewer 0.5.1

Группа Мультимедиа

Lightning Image Viewer – легковесное приложение для просмотра изображений на десктопном компьютере со своеобразным UX, который автор находит наиболее удобным.

( читать дальше... )

>>> Страница релиза на GitHub

 , , , ,

shatsky
()

Numbat 1.17.0

Группа Open Source

27 декабря, после почти одиннадцати месяцев разработки, состоялся выпуск 1.17.0 высокоточного консольного научного калькулятора numbat, написанного на языке Rust и распространяемого по лицензии MIT и/или Apache 2.0.

Отличительные особенности Numbat:

  • полная поддержка физических размерностей и единиц измерения;
  • язык программирования со статической типизацией для научных вычислений;
  • автодополнение имён функций, единиц измерения и переменных;
  • поиск по истории ввода;
  • большой набор встроенных функций и констант: математические, дата и время, обработка строк и другие.
  • и многое другое.

( читать дальше... )

>>> Документация

>>> Таблица сравнения с другими научными калькуляторами и языками программирования

>>> Список изменений версии 1.17.0 на GitHub

 , , , ,

dataman
()

CVE-2025-68260: Первая уязвимость в коде Linux на Rust

Группа Безопасность

Грег Кроа-Хартман анонсировал первую уязвимость с присвоенным CVE в части кода на Rust в Mainline-ядре.

Уязвимость обнаружена в коде подсистемы Binder, переписанном на Rust. Возможное состояние гонки в unsafe блоке может повредить указатели связанного списка и привести к краху ядра.

Уязвимость воспроизводится в ядре 6.18 при использовании нового, переписанного на Rust драйвера Binder.

>>> Оригинал новости на Phoronix

 , ,

mittorn
()

Завершение эксперимента с Rust в ядре Linux

Группа Ядро Linux

Начатый в ядре 6.1 эксперимент по добавлению кода на Rust в ядро Linux, в котором участвовало 173 разработчика, официально завершён: соответствующая секция убрана из документации ядра.

По словам мейнтейнера Rust for Linux: Rust is here to stay. Таким образом Rust становится официальным языком разработки ядра наравне с С.

( читать дальше... )

>>> Анонс от Miguel Ojeda

 ,

zabbal
()

Новый вирус-шифровальщик 01flip

Новый вирус-шифровальщик 01flip
Группа Безопасность

Новый шифровальщик 01flip, написанный на Rust, всё чаще начал появляться в атаках на организации в Азиатско-Тихоокеанском регионе. По данным подразделения Unit 42 компании Palo Alto Networks, активность пока затронула ограниченное число целей, но включает структуры, связанные с критической инфраструктурой в Юго-Восточной Азии.

( читать дальше... )

>>> Подробности

 , , ,

DrRulez
()

В Rust-репозитории crates.io выявлены четыре вредоносных пакета

В Rust-репозитории crates.io выявлены четыре вредоносных пакета
Группа Безопасность

Разработчики языка Rust предупредили о выявлении в репозитории crates.io пакетов finch-rust, sha-rust, evm-units и uniswap-utils, содержащих вредоносный код (про последние два отдельная новость на ЛОРе была опубликована ранее).

( читать дальше... )

>>> Источник

 , ,

Sm0ke85
()

Ferrocene 25.11.0

Группа Разработка

Вышла новая версия Ferrocene – компилятора языка Rust, предназначенного для написания особенно чувствительных к безопасности и надёжности систем. От эталонной реализации Ferrocene отличается наличием сертификатов ISO 26262 (ASIL D), IEC 61508 (SIL 3) и IEC 62304 (Class C).

( читать дальше... )

>>> Подробности

 , , ,

hateyoufeel
()

geoip 0.1.0

Группа Open Source

Тихо и незаметно вышла первая версия проекта geoip — self-hosted сервиса GeoIP REST API, написанного на Rust.

( читать дальше... )

>>> GitHub

 , , ,

KivApple
()

Linux 6.18

Linux 6.18
Группа Ядро Linux

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.18. Среди наиболее заметных изменений: dm-pcache для дискового кэширования в энергонезависимой памяти (PMEM), удаление Bcachefs, online-режим проверки XFS, драйверы Binder (Android IPC) и Tyr (GPU Mali) на Rust, возможность создания USB-драйверов на Rust, оптимизация кэширования в аллокаторе памяти SLUB, адресация пространств имён по файловым дескрипторам, ускорение работы подкачки (swap), верификация BPF-программ по цифровой подписи, виртуализация Intel CET в KVM, сетевой протокол PSP (гибрид TLS и IPsec), поддержка IP-расширения AccECN, оптимизация UDP-стека.

В новую версию принято 15035 исправлений от 2217 разработчиков, размер патча – 45 МБ (изменения затронули 13142 файлов, добавлено 601897 строк кода, удалено 355006 строк). В прошлом выпуске было 14334 исправлений от 2118 разработчиков, размер патча – 46 МБ. Около 40% всех представленных в 6.18 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% – с файловыми системами и 3% c внутренними подсистемами ядра.

Основные изменения в ядре 6.18 (kernelnewbies.org, lwn.net, OpenNET):

( читать дальше... )

>>> Подробности на OpenNET

 , , ,

dataman
()

Вышел servo 0.0.2

Группа Mozilla

Серво – экспериментальный веб-движок на языке Rust. Так как проект находится в зачаточной стадии разработки, то адекватного ченджлога нет, но основные изменения можно посмотреть тут.

В данном выпуске появился servoshell – это демо-браузер, запускаемый и конфигурируемый из командной строки. Для его сборки требуется rustc-1.88 (отсутствует в убунту старше 25.10) и набор библиотек X11 (последнее, вероятно, можно считать косвенным свидетельством отсутствия поддержки Wayland).

>>> Релиз на гитхабе

>>> Анонс (Phoronix)

 , , ,

anonmyous
()

fselect 0.9.1

Группа Open Source

fselect — это консольная утилита для поиска файлов с помощью выражений, напоминающих SQL. В некоторых случаях может заменить традиционный find и написание развесистых скриптов с его использованием.

( читать дальше... )

>>> Репозиторий проекта на GitHub

 , , , ,

Pupseng
()

Ubuntu 25.10: обнаружена уязвимость в sudo-rs

Ubuntu 25.10: обнаружена уязвимость в sudo-rs
Группа Ubuntu Linux

Ubuntu 25.10 вновь столкнулась с проблемами при переходе на Rust-утилиты: на этот раз под удар попал sudo-rs — переписанная на Rust версия классической команды sudo. В коде обнаружены две уязвимости средней степени опасности, одна из которых получила идентификатор CVE-2025-64170.

( читать дальше... )

>>> Подробности

 , ,

DrRulez
()

Выпуск Rust Coreutils 0.4. Расхождение поведения утилиты du в uutils и GNU Coreutils

Группа Open Source

Опубликован выпуск проекта uutils coreutils (Rust Coreutils) версии 0.4.0, развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia.

Rust Coreutils задействован по умолчанию в выпуске Ubuntu 25.10 и применяется в дистрибутивах AerynOS (Serpent OS) и Apertis (развивается компанией Collabora). В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils и procps, а также программ sed и login.

В новой версии Rust Coreutils:

  • Улучшена совместимость с эталонным тестовым набором GNU Coreutils, при прохождении которого успешно выполнено 544 теста, что на 12 больше, чем в прошлой версии (532). 56 (68) тестов завершилось неудачей, а 33 (33) теста было пропущено. Заявлен уровень совместимости 85.80% (было 83.91%).

  • В утилите date улучшена совместимость с GNU date при обработке часовых поясов (добавлена возможность указания сокращённых наименований часовых поясов в опции –set).

*В утилите factor задействован пакет num_prime для ускорения факторизации типов u64/u128.

*В утилите tsort реализация алгоритма обхода DFS переведена с рекурсивного на итеративный метод работы для предотвращения переполнения стека.

  • В утилите cksum реализована поддержка хэшей sha2 и sha3. Добавлены тесты для отслеживания изменения производительности cksum. Функциональность hashsum перенесена в cksum.

  • В утилите mkdir устранено переполнение стека, приводящее к аварийному завершению при создании большого (200+) числа вложенных каталогов.

  • В утилитах stdbuf и uptime реализована поддержка платформы OpenBSD.

  • Улучшена сборка и тестирование на платформе FreeBSD.

  • Внесены общие улучшения для повышения переносимости. Расширены возможности, устранены проблемы и добавлены недостающие опции для утилит base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.

Стоит отметить расхождение в поведении утилиты du из наборов uutils и GNU Coreutils, всплывшее после перехода Ubuntu 25.10 на uutils. Разработчики ещё не решили трактовать ли данное расхождение как ошибку, так как с одной стороны в поведении uutils есть логика и тестовый набор GNU Coreutils не выявляет проблем, но с другой стороны несовместимости с GNU Coreutils предписано обрабатывать как ошибки и поведение Busybox соответствует GNU Coreutils.

Разное поведение наблюдается при указании в числе аргументов утилиты du нескольких каталогов в ситуации, когда некоторые из каталогов являются подкаталогами других каталогов (например, /var и /var/log). Uutils показывает фактический размер каждого отдельного каталога, а в итоговой строке выводит суммарный размер всех указанных каталогов. GNU Coreutils показывает в итоговой строке фактический размер, который указанные каталоги занимают на диске, но в раздельном списке показывает размеры каждого каталога с вычетом вложенных каталогов, из-за чего их размер получается меньше фактического. Кроме того, значения, выводимые в GNU Coreutils и Busybox, меняются в зависимости от порядка указания каталогов.

Например, при проверке размера каталогов /var/log и /var, фактический размер которых 1540 и 35495 блоков (МБ).

В GNU Coreutils будет выведено:

du -smc /var/log /var
   1540    /var/log
   33955   /var # меньше фактического
   35495   total

   du -smc /var /var/log 
   35495   /var # показан только /var и не показан /var/log
   35495   total

В uutils:

du -smc /var/log /var
   1540    /var/log
   35495   /var
   37034   total # больше фактического, но соответствует сумме /var и /var/log

   du -smc /var /var/log
   35495   /var  
   1540    /var/log
   37034   total # больше фактического, но соответствует сумме /var и /var/log

В Busybox:

du -smc /var/log /var
   1540    /var/log
   33955   /var # меньше фактического
   35495   total

   du  -smc /var /var/log
   35495   /var # показан только /var и не показан /var/log
   35495   total

>>> Подробности на opennet

 , , , ,

PunkPerson
()

Tatuin v0.25.0

Группа Open Source

Tatuin (Task Aggregator TUI for N providers) — агрегатор задач с текстовым пользовательским интерфейсом (TUI), объединяющий в одном окне задачи из различных источников: Todoist, Obsidian, GitLab TODO, GitHub Issues, iCal и CalDAV. Поддерживает базовые операции над задачами — добавление, редактирование, выполнение и удаление.

( читать дальше... )

>>> Полный список изменений

 , , , ,

panter_dsd
()

В Debian намерены добавить Rust в число обязательных зависимостей к APT

Группа Debian

Джулиан Андрес Клоде (Julian Andres Klode), основной сопровождающий проект APT, объявил о решении добавить код на языке Rust в пакетный менеджер APT, а также включить в число обязательных зависимостей компилятор Rust, стандартную библиотеку Rust и PGP-инструментарий от проекта Sequoia, написанный на Rust. Изменения намерены реализовать не раньше мая 2026 года, чтобы дать разработчикам портов Debian полгода на реализацию корректной работы инструментария Rust или сворачивание порта.

На Rust планируют реализовать компоненты APT, требующие повышенного внимания с точки зрения безопасности, такие как парсеры форматов deb, ar и tar, а также код для проверки цифровых подписей. Ранее, в состав APT 3.0 уже была добавлена возможность использования написанной на Rust утилиты sqv для проверки цифровых подписей вместо вызова gpgv.

Андреас обосновывает предстоящее изменение важностью того, чтобы «проект мог двигаться вперёд и опираться на современные инструментарии и технологии, а не буксовать, пытаясь заставить работать современное программное обеспечение на устаревших системах».

Ранее сообщалось, что из-за ошибки в uutils в Ubuntu 25.10 перестала работать автоматическая проверка наличия обновлений.

Оригинал:

Hi all,

I plan to introduce hard Rust dependencies and Rust code into
APT, no earlier than May 2026. This extends at first to the
Rust compiler and standard library, and the Sequoia ecosystem.

In particular, our code to parse .deb, .ar, .tar, and the
HTTP signature verification code would strongly benefit
from memory safe languages and a stronger approach to
unit testing.

If you maintain a port without a working Rust toolchain,
please ensure it has one within the next 6 months, or
sunset the port.

It's important for the project as whole to be able to
move forward and rely on modern tools and technologies
and not be held back by trying to shoehorn modern software
on retro computing devices.

Thank you for your understanding.
-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer                              i speak de, en

>>> Источник

 , , ,

Sm0ke85
()

Rust 1.91.0

Группа Разработка

Представлена новая версия языка программирования Rust. Rust – язык программирования общего назначения, который освобождает программиста от ручного управления памятью благодаря механизму владения, без использования сборщика мусора.

( читать дальше... )

>>> Подробнее

 ,

snake266
()

Уязвимость в Rust-библиотеках для формата TAR, приводящая к распаковке файлов из вложенного архива

Уязвимость в Rust-библиотеках для формата TAR, приводящая к распаковке файлов из вложенного архива
Группа Безопасность

В написанной на языке Rust библиотеке async-tar, предоставляющей функции для чтения и записи tar-архивов, выявлена уязвимость (CVE-2025-62518, кодовое имя TARmageddon), позволяющая при распаковке специально оформленного tar-архива не только извлечь размещённые в нём файлы, но и файлы, содержащиеся во вложенном tar-архиве. Уязвимость может быть использована для обхода систем верификации архивов и распаковки файлов, для которых не выполнялась проверка.

Уязвимость также проявляется в форках библиотеки async-tar, таких как tokio-tar, krata-tokio-tar и astral-tokio-tar, а также в утилитах на их основе, например, в пакетном менеджере uv, развиваемом в качестве высокопроизводительной замены «pip» для проектов на языке Python. Из популярных проектов, использующих уязвимые библиотеки, также отмечаются инструментарий testcontainers для запуска docker-контейнеров и WebAssembly runtime wasmCloud. В репозитории crates.is за последние 90 дней библиотека async-tar насчитывает 1.3 млн загрузок, tokio-tar - 2.2 млн, testcontainers - 2.9 млн.

Уязвимость вызвана некорректным выбором позиции при разборе разных значений размера в заголовках ustar и PAX. В tar-архивах в формате PAX для каждого файла внутри архива указываются два заголовка - классический ustar и расширенный PAX. Проблема вызвана тем, что уязвимые библиотеки при распаковке файлов вместо вычисления смещения на основе размера из расширенного заголовка PAX, брали размер из устаревшего заголовка ustar. При нулевом значении размера в заголовке ustar, идущее за ним содержимое файла обрабатывалось как корректный блок TAR-заголовков для следующего файла.

Для совершения атаки достаточно создать TAR-архив, в котором в ustar-заголовке указан нулевой размер, а в заголовке для формата PAX актуальный размер, из-за чего содержимое файла с другим tar-архивом будет обработано как часть основного архива. Пример кода для создания подобных архивов размещён на GitHub. Уязвимость устранена в выпусках tokio-tar 0.5.6 и uv 0.9.5. Для остальных библиотек исправления пока не опубликованы, но для astral-tokio-tar, async-tar и krata-tokio-tar отдельно подготовлены патчи.

Уязвимости в библиотеках присвоен уровень опасности 8.1 из 10, так как проблема может использоваться для перезаписи распаковываемых файлов (в уязвимых реализациях будут распакованы не те файлы, что были видны в архиве). При этом уязвимость в пакетном менеджере uv отмечена как неопасная, так как если атакующий может влиять на содержимое исходного архива, нет смысла усложнять атаку и эксплуатировать уязвимость через вложенный архив, когда можно добиться выполнения кода через сборочные сценарии в основном архиве.

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

Например, атакующий может загрузить модифицированный архив в репозиторий PyPI, который пройдёт проверку на основе анализа содержимого основного архива, содержащего легитимный файл pyproject.toml. При обработке данного пакета при помощи утилиты uv легитимный pyproject.toml будет заменён на вредоносный вариант из вложенного архива, содержащий команды, которые будут выполнены при сборке на компьютере разработчика или в системе непрерывной интеграции. Аналогично, можно организовать перезапись файлов контейнера при извлечении образа контейнера при помощи инструментария testcontainers.

>>> Подробности на OpenNET

 , ,

Ygor
()

В Rust переименовали главную ветку rust-lang/rust с master на main

Группа Разработка

Свершилось! Разработчики языка программирования Rust переименовали главную ветку проекта с master на гендерно-нейтральное main.

>>> Подробности

 

Zhbert
()

ripgrep 15.0.0

Группа Open Source

16 октября, после более года разработки, состоялся выпуск 15.0.0 быстрой кроссплатформенной консольной утилиты ripgrep, предназначенной для многопоточного рекурсивного поиска текста в файлах.

По умолчанию ripgrep использует поиск по регулярному выражению в файлах текущей директории, учитывает правила .gitignore и автоматически пропускает двоичные файлы и скрытые файлы и директории.

( читать дальше... )

>>> Подробности на GitHub

 ripgrep, , , ,

dataman
()

Mergiraf — новый движок разрешения конфликтов в коде

Группа Разработка

Mergiraf – новый движок для git merge, учитывающий синтаксис языков программирования и позволяющий в автоматической режиме решать конфликты, например, в случаях, где изменения в одной строчке производятся над независимыми синтаксическими элементами или где порядок изменений не играет роли. Список поддерживаемых языков программирования и форматов данных весьма обширен. Для работы с исходным кодом используется библиотека Tree-sitter, что также позволяет легко добавлять поддержку новых языков при наличии парсера для TS.

Сам Mergiraf написан на языке Rust, исходный код опубликован на условиях GNU GPL 3.

>>> Документация по использованию

>>> Исходный код

 , , ,

hateyoufeel
()