Скрипты этого репозитория запускают от root: они меняют ядро, пользователей, sudoers, SSH, firewall и sysctl. Ошибка в них затрагивает всю систему, поэтому сообщения об уязвимостях принимаются только закрытым каналом.
| Версия | Исправления безопасности |
|---|---|
main |
Да. Команды из README запускают именно main. |
Последний выпуск vГГГГ.ММ.ДД |
Да, в виде следующего выпуска. |
| Более старые выпуски | Нет. |
Выпуски неизменяемы, а теги v* нельзя перенести или удалить. Исправление выходит в main и попадает в следующий выпуск; старый выпуск не меняется. Если вы закрепили команду на теге, после исправления замените тег на новый (см. раздел «Версии и выпуски» в README.md).
Сообщайте только закрыто, через форму GitHub: https://github.com/snaplyze/optimize-debian/security/advisories/new (кнопка «Report a vulnerability» на вкладке Security репозитория).
Не открывайте публичный issue и не описывайте уязвимость в PR: до исправления она станет известна всем, кто запускает скрипты из main.
В сообщении укажите:
- скрипт и версию:
mainс датой загрузки или тег выпуска; версия отдельного скрипта — изbash <скрипт> --helpили из заголовка его вывода; - версию Debian и окружение (VPS, мини-ПК, WSL2);
- шаги воспроизведения;
- влияние: что получает атакующий или что ломается в системе.
Не присылайте секреты, ключи, пароли и адреса. Из выдержек логов (/var/log/vps_optimization.log, /var/log/debian-upgrade/) уберите IP-адреса, имена хостов, имена пользователей и ключи SSH.
Проект поддерживает один владелец, поэтому ответ приходит по возможности, без гарантированного срока. Порядок работы:
- Подтверждение, что сообщение получено и воспроизводится.
- Исправление в
mainчерез PR с обязательной проверкойchecks. - Публикация advisory и запись в CHANGELOG.md.
- Новый выпуск с исправлением.
До публикации advisory не раскрывайте подробности публично.
Политика относится к коду этого репозитория: optimize_*.sh, upgrade-to-debian13.sh, lib/*.sh, тесты и CI.
Уязвимости сторонних пакетов, которые скрипты устанавливают (Docker, NVIDIA Container Toolkit и CUDA, Fish, Starship, пакеты Debian), сообщайте их авторам. Если уязвимость в том, как скрипт устанавливает или настраивает пакет (например, непроверенная загрузка или слабая настройка), это область этого репозитория.
- Сторонние загрузки закреплены: файл скачивается по фиксированной версии и сверяется с SHA-256 до запуска (
common_fetch_pinned, пины вcommon_pinned_download). ShellCheck для CI закреплен в.github/shellcheck.txt, действия GitHub — по SHA коммита. - Усиление SSH идет через drop-in
/etc/ssh/sshd_config.d/00-*.conf; перед перезапуском конфигурация проверяетсяsshd -t, а итоговые значения —sshd -T(common_sshd_effective_mismatches). При расхождении drop-in откатывается, sshd не перезапускается. - Файлы
/etc/sudoers.d/*записываются только после проверкиvisudo -cfна временном файле (common_safe_write_sudoers); при ошибке прежний файл остается без изменений. --helpу всех скриптов работает без root и ничего не меняет; шагиoptimize_*.shидут из функции, вызванной последней строкой, поэтому оборванная загрузка ничего не исполняет.- Для
mainдействует защита ветки: только PR с зеленойchecks, линейная история, без force push.
Подробнее об устройстве скриптов и проверках: docs/ARCHITECTURE.md.