fix(security): harden diagnostics storage boundary

This commit is contained in:
2026-09-07 19:52:11 +05:00
parent af9f476658
commit a3445f79c5
12 changed files with 562 additions and 37 deletions
+7
View File
@@ -8,6 +8,13 @@
## [Unreleased]
Diagnostics больше не пишет root-артефакты в `/var/log/hy2xs`, которым владеет
`hy2xs-admin`. Staging и архив перенесены в проверяемый через `lstat` каталог
`/var/lib/hy2xs/diagnostics` (`root:root 0700`), имена создаются эксклюзивно,
symlink и ослабленные права дают fail-closed отказ, а временный staging после
упаковки удаляется. Чтение metadata теперь использует fallback только при
`ENOENT`; ошибки прав, ввода-вывода и неверного типа больше не маскируются.
Очередной hardening-проход закрывает границу кодировок. Оркестратор теперь
читает конфигурацию и секреты как байты с fatal UTF-8 decoding, сохраняет BOM
как U+FEFF до явного транспортного отказа и проверяет исходный EnvironmentFile