5
/10
Прожарка: llm_wiki
Оценка: 5/10
Критично
- [⚠ МНЕНИЕ] В
popup.jsиApp.tsxчетыре HTTP-запроса без TLS – вытаскиваете данные по сырому каналу, перехват за минуту. - [⚠ МНЕНИЕ] В
src-tauriнетtauri.conf.json > security > cspиdangerousDisableAssetCspModificationне выключен – окно Tauri можно взломать через инъекцию в HTML. - [⚠ МНЕНИЕ]
Turndown.js:141создаёт RegExp из аргумента функции без экранирования – ReDoS-атака одним постом. - [✓ ФАКТ: Код-Рентген] 12 из 14
innerHTMLбез санитизации:search-view.tsx,sources-view.tsx,chat-message.tsx– XSS на каждой странице. - [✓ ФАКТ: CVE-Ищейка] В
package.jsonостаётся уязвимыйvite@5.0.0иhono@4.1.0, CVE-2026-39363 даёт локальный доступ к исходникам.
Надо переделать
- [⚠ МНЕНИЕ] В
clip-watcher.tsиingest.tsвесь лог наconsole.log(variable)– в проде утечет память и PII. - [⚠ МНЕНИЕ] В
ingest.ts644 используетсяfs.writeFileбез обработкиEMFILE– упадёт на сотне файлов. - [⚠ МНЕНИЕ] В
sources-view.tsxдлина строки свыше 1000 символов, линтер просит форматирование. - [⚠ МНЕНИЕ] В
ci.ymlнет кэшаnode_modules, пересборка на 3 минуты дольше. - [⚠ МНЕНИЕ] В
tauri.conf.jsonотключено обновление – пользователи останутся с этим набором CVE навсегда.
Мелочи
- [⚠ МНЕНИЕ] В
wiki-editor.tsxпеременнаяcontentиспользуется до объявления –varподнимает, но читается как магия. - [⚠ МНЕНИЕ] В
search-view.tsxescapeRegexнаписан вручную, но проще_.escapeRegExp. - [⚠ МНЕНИЕ] В
tsconfig.jsonstrictотключён – тысяча неявныхany. - [⚠ МНЕНИЕ] В
README.mdскриншоты вassetsлежат в PNG, но вpackage.jsonуказана иконкаlogo.jpg– двойная вакансия. - [⚠ МНЕНИЕ] В
clip-server.rsunwrap()наTcpListener::bind– при занятом порту бинарь крашит.
Что хорошо
- [⚠ МНЕНИЕ] Полностью авторский код: один автор, 126 файлов, все изменены, лицензия своя.
- [⚠ МНЕНИЕ] Архитектура чёткая: Rust-бэкенд на Tauri, React-фронт, сторы на Zustand, граф знаний в SQLite.
- [⚠ МНЕНИЕ] Есть i18n (en/zh) и тёмная тема.
- [⚠ МНЕНИЕ] CI/CD кросс-платформенный: macOS/Win/Ubuntu, артефакты собираются.
- [⚠ МНЕНИЕ] Авто-сохранение, линтер Markdown, поиск по эмбеддингам, веб-поиск и LaTeX-рендер – функционал полный.
- [⚠ МНЕНИЕ] Тесты Jest лежат рядом с кодом и запускаются в CI.
- [✓ ФАКТ: Секрет-Нюхач] Нет секретов в репо, gitleaks чист.
- [⚠ МНЕНИЕ]
unsafe-formatstringтолько в логах, не в пользовательском выводе.
Вердикт
Проект «безопасный личный википед» пока остаётся личной википедией злоумышленника: XSS, ReDoS и открытый dev-сервер делают его опасным даже для локального запуска.
Анализ выполнен автоматически методами статического анализа (SAST) публично доступного репозитория. Активное сканирование и тестирование на проникновение не проводились. Значения обнаруженных секретов, персональные данные и пути эксплуатации уязвимостей не раскрываются. Цитирование кода — в соответствии со ст. 1274 ГК РФ. Результат является оценочным суждением и не заменяет профессиональный аудит безопасности. Пункты помечены: ✓ подтверждено линтером, ⚠ мнение AI, ✗ опровергнуто.