Тема дня — сговор мелочей. Звёздочка 1980 года, лимит в 256 байт и защитный фикс 2016-го договариваются между собой и открывают root; оптимизация пятилетней давности превращается в remote root; а Electron-обёртка незаметно съедает гигабайт. Четыре материала.
sshhole: root на Alpine без пароля
Топ Hacker News недели — разбор с провокационным именем: в OpenSSH на системах с musl без PAM аккаунты со звёздочкой в /etc/shadow — root и пользователи только с ключами — принимают любой пароль длиннее 256 символов. На официальных образах Alpine в AWS и Azure это полный root-компромет из коробки; вставьте длинную строку в запрос пароля — и вы внутри. Цепочка случайностей тянется от звёздочки Билла Джоя 1980 года через возврат звёздочки из crypt() в musl 2012-го к фиксу CVE-2016-6210, чей фиктивный хэш совпал с хранимой звёздочкой для сверхдлинных паролей. Нашли фаззингом семнадцати тысяч логинов с помощью ИИ-агентов; исправление — OpenSSH 10.6p2, ставить сегодня, если у вас Alpine, OpenWRT или Yocto.
Рукожопатие Linux: TCP-гонка десятилетней выдержки
Разбор CVE-2026-98432 с оценкой 9.8: в 2015-м Эрик Дюмазе убрал блокировку listener-сокета для полуоткрытых соединений — оптимизация оставила use-after-free на общем указателе IP-опций, и атакующий полностью управляет таймингом: проигранная гонка бесплатна и не оставляет следов, выигранная — утечка памяти ядра и remote root. Показательна экономика: Anthropic сообщила, что их внутренняя модель собрала рабочий эксплойт за 53 минуты машинного времени — месяцы работы редкого специалиста сжались до часа; при этом RHEL получил патч через 27 дней после апстрима, и часть Ubuntu LTS всё ещё ждёт. Практика из статьи: обновить ядро с перезагрузкой и проверить листенеры через ss — демонстрационная цепочка требует MPTCP, который Go 1.24 включает по умолчанию.
Discord уходит с Electron на Rust
CTO Discord Станислав Вишневский объявил: десктопный клиент переезжает с Electron на Rust целиком, мобильные приложения сохранят нативный интерфейс, но будут делить Rust-код с десктопом. Скриншот обещает 290 мегабайт против гигабайта и больше у текущей версии с активными серверами. Rust в инфраструктуре Discord с 2018-го, и полностью Rust-клиент CTO называет «святым граалем». Крупнейшее признание года в тезисе «обёртка над браузером — не архитектура, а компромисс»: когда твоя программа — чат, странно тратить на неё память браузера.
Как повредить базу SQLite: официальный ответ
Перевод документа sqlite.org о повреждениях — и главный вывод утешительный: чаще всего базу губит не SQLite, а окружение. Закрытый файловый дескриптор, бэкап в середине транзакции, удалённый hot journal, блокировки на NFS, флешки, врущие про fsync, и выключенный synchronous — вот реальные виновники. Из практичного: безопасные бэкапы через VACUUM INTO, backup API и свежий sqlite3_rsync, и здоровый страх перед прямой записью в файл мимо библиотеки. Обязательная закладка всем, у кого SQLite где-то живёт — от мобильных до встроенных систем.