# Политика безопасности
**Языки:** [English](SECURITY.md) · **Русский** · [简体中文](SECURITY.zh.md)
## Поддерживаемые версии
Пока крейт в pre-1.0, поддерживается только **последний опубликованный
минор**. Фиксы безопасности попадают в `main` и выходят PATCH-релизом
в течение нескольких дней.
| 0.1.x | ✅ |
| старше | ❌ — сперва обновитесь |
## Сообщение об уязвимости
**Пожалуйста, не открывайте публичные issue по проблемам безопасности.**
Напишите на **phpcraftdream@gmail.com** и укажите:
- Краткое описание уязвимости.
- Минимальный воспроизводитель (Ktav-вход, запускающий поведение;
затронутый API — `parse` / `from_str` / `to_string` / `render`;
ожидаемое против фактического).
- Версию, на которой наблюдалось (обычно достаточно вывода
`cargo tree -p ktav`) плюс Rust-тулчейн, если нестандартный.
- Предпочтительный таймлайн раскрытия, если у вас он есть.
Подтверждение получите в течение **72 часов**. Опубликованный фикс
обычно выходит в течение **недели** для высокоприоритетных проблем,
дольше — если фикс нужно согласовать с каким-то биндингом или со
спецификацией формата.
## Область
Это референсный Rust-крейт, который оборачивают все остальные биндинги.
Реальная проблема здесь обычно затрагивает `ktav-lang/python`,
`ktav-lang/js`, `ktav-lang/golang` одновременно — относитесь соответственно.
Что считается проблемой безопасности для этого крейта:
- Паники на сформированном входе в `parse` / `from_str` / `to_string`
/ `render`. Крейт используется в downstream-биндингах со сборкой
`panic = "abort"`, так что паника валит consumer-процесс.
- Неконтролируемое потребление памяти или CPU (квадратичное поведение,
неограниченные аллокации, бесконечные циклы) на сформированном входе.
- Корректность `unsafe`: любая дыра в safety `unsafe`-блоков — выход
за границы, UB, нарушения aliasing — даже если очевидного пути
эксплуатации не видно.
- Любое поведение, при котором сформированный Ktav-вход порождает
`Value` вне документированной грамматики (lossy round-trip,
теряющий или подделывающий данные).
Что **не** считается проблемой безопасности здесь — пожалуйста,
используйте обычные issue:
- Регрессии производительности без DoS-характеристик.
- Непонятные или неточные сообщения парсера об ошибках.
- Проблемы в самом формате Ktav — им место в
[`ktav-lang/spec`](https://github.com/ktav-lang/spec).