Языки: English · Русский · 简体中文
Пока пакет в pre-1.0, поддерживается только последний опубликованный
минор. Фиксы безопасности попадают в main и выходят PATCH-релизом
в течение нескольких дней.
| Версия | Поддерживается |
|---|---|
| 0.1.x | ✅ |
| старше | ❌ — сперва обновитесь |
Пожалуйста, не открывайте публичные issue по проблемам безопасности.
Напишите на phpcraftdream@gmail.com и укажите:
- Краткое описание уязвимости.
- Шаги или фрагмент для воспроизведения (Ktav-вход, который запускает поведение; затронутый API; ожидаемое против фактического).
- Версию, на которой наблюдалось (обычно достаточно координат JAR
и вывода
Ktav.nativeVersion()) плюс JDK, OS и arch — чтобы понять, какой прекомпилированныйktav_cabiиспользовался. - Предпочтительный таймлайн раскрытия, если у вас он есть.
Подтверждение получите в течение 72 часов. Опубликованный фикс обычно выходит в течение недели для высокоприоритетных проблем, дольше — если фикс нужно согласовать с Rust-крейтом или со спецификацией формата.
Что считается проблемой безопасности для этого пакета:
- Out-of-bounds чтения / записи или паники в нативной библиотеке
ktav_cabi, ведущие к падению или зависанию хост-PHP process. Библиотека грузится через FFI (Native.load) — нативный crash роняет всю PHP process, на Java-стороне его никакимcatchне поймать. - Неконтролируемое потребление памяти или CPU при разборе специально сформированного входа.
- Некорректное обращение с памятью на FFI-границе (double-free,
missing free, чтение освобождённого буфера после
ktav_free). - Любое поведение, при котором сформированный Ktav-вход выходит за ожидаемый value-домен (произвольное выполнение кода в загруженной библиотеке, раскрытие неинициализированной памяти и т. п.).
- Download-time вектор:
NativeLoaderкачает прекомпилированный бинарь из соответствующего GitHub Release. Репорты про TLS / проверку целостности этой цепочки сюда.
Что не считается проблемой безопасности здесь — пожалуйста, используйте обычные issue:
- Регрессии производительности без характеристик crash / hang.
- Поведенческие расхождения, которые не эксплуатируются.
- Проблемы в самом формате Ktav — им место в
ktav-lang/spec.