Rust BY – Telegram
Rust BY
65 subscribers
85 photos
6 videos
3 files
1.62K links
Беларуское комьюнити растоманов (Rust Lang)
есть чат @rust_by_chat
Download Telegram
Forwarded from Адель и МЛь
Claude выращивает томат. 🍅

Интересный эксперимент, где Claude вот уже 37 дней выращивает томат в контролируемой среде.
У него есть датчики температуры, влажности воздуха и почвы, давления, уровня СО2, температуры листьев.
И он может управлять светом, подогревом почвы (через подогрев коврика), вентиляцией, подачей воды.
Посмотреть, что там сейчас и почитать лог можно тут: https://autoncorp.com/biodome/

Автономные теплицы все ближе!

Автор
Forwarded from HN Best Comments
Re: Microsoft Office renamed to “Microsoft 365 Copilot app”

I genuinely thought this was a joke when I saw the headline, and I had to double check the domain name to verify that this wasn't a parody.

Apart from being absolutely abysmal marketing, the front page alone is wildly inconsistent:

* "Welcome to Microsoft 365 Copilot"

* "The Microsoft 365 Copilot app (formerly Office) [...]"

* "Microsoft 365 (formerly Microsoft Office 365) is a subnoscription service [...]"

Which is it, "Microsoft 365 Copilot", "(The) Microsoft 365 Copilot app", "(The) Microsoft 365 Copilot app (formerly Office)", "Microsoft 365" or "Microsoft 365 (formerly Microsoft Office 365)"?

I think Microsoft delegated all marketing decisions to AI. Not even joking.

ulrikrasmussen, 8 hours ago
В проекте RustFS, развивающем совместимое с S3 распределённое объектное хранилище, написанное на языке Rust, выявлена уязвимость (CVE-2025-68926), напоминающая бэкдор. Проблема вызвана наличием жёстко прошитого в коде токена доступа, позволяющего подключиться к сетевому сервису по протоколу gRPC, указав в заголовке "authorization" значение "rustfs rpc". Токен присутствовал в коде сервера и клиента. Проблеме присвоен критический уровень опасности (9.8 из 10).

Атакующий, имеющий доступ к сетевому порту gRPC, мог использовать указанный токен для выполнения привилегированных операций с хранилищем, среди которых удаление данных, манипуляции с учётными данными пользователей и изменение настроек кластера. По умолчанию RustFS принимает gRPC-запросы на TCP-порту 9000 на всех сетевых интерфейсах. Уязвимость устранена в выпуске RustFS 1.0.0-alpha.77.

   grpcurl -plaintext -H 'authorization: rustfs rpc' \
-d '{"access_key": "admin"}' \
localhost:9000 node_service.NodeService/LoadUser

   grpcurl -plaintext -H 'authorization: rustfs rpc' \
-d '{"volume": "config", "path": "backdoor.sh", "buf": "..."}' \
localhost:9000 node_service.NodeService/WriteAll


В RustFS выявлен предопределённый в коде токен доступа
https://www.opennet.ru/opennews/art.shtml?num=64551

Оригинал
gRPC Hardcoded Token Authentication Bypass - Reproduction Report
https://github.com/rustfs/rustfs/security/advisories/GHSA-h956-rh7x-ppgj
Forwarded from Блог*
#prog #rust #article

What does it take to ship Rust in safety-critical?

Статья про очень конкретные препятствия к использованию Rust в safety-critical системах.

Это именно препятствия, а не блоки — в этих областях Rust уже используется в проде.
Памятка по профилированию кода на Rust https://eax.me/2026/2026-01-26-rust-profiling.html
Forwarded from Блог*
#prog #article

GSoC 2025: Usability Improvements for the Undefined Behavior Sanitizer

clang поддерживает несколько санитайзеров, в том числе UBSan для отловки неопределённого поведения (с оговорками). Запускать их при этом можно в двух разных режимах. Первый — с добавлением рантайма, который при детектировании UB перед завершением работы программы печатает, что конкретно пошло не так. Второй вариант — без рантайма, в котором при детектировании UB просто исполняется trap-инструкция процессора.

Второй вариант больше годится для случаев, когда важны оверхед на производительность и размер компилированного кода (в embedded, например). Проблема в том, что UX у такого решения ужасный: получай аварийное завершение программы, а что именно пошло не так — гадай сам. И даже дебаггер в этих случаях не особо помогает, потому что он максимум укажет на инструкцию рядом с trap и на соответствующую строку исходного кода, но не более.

Anthony Tran задался целью исправить этот недостаток. С этой целью он модифицировал кодогенерацию так, чтобы к trap-инструкции прицеплялась отладочная информация, в которую уже включалось человекочитаемое сообщение об ошибке. Этот подход хорош тем, что сразу же подхватывается существующими отладчиками. Разумеется, дополнительная отладочная информация требует места, но оверхед на размер кода на практике пренебрежимо мал.

Не обошлось без костылей из-за ограниченности DWARF:

To accomplish this, we needed to find a place to “stuff” the string in the DWARF DIE tree. Using a
DW_TAG_subprogram was deemed the most straightforward and space-efficient location. This means we create a synthetic DISubprogram which is not a real function in the compiled program; it exists only in the debug info as a container.
<...>
When a trap is hit in the debugger, the debugger retrieves this string from the debug info and shows it as the reason for trapping.