Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 3.71 KB

File metadata and controls

59 lines (45 loc) · 3.71 KB

Политика безопасности

Языки: English · Русский · 简体中文

Поддерживаемые версии

Пока пакет в pre-1.0, поддерживается только последний опубликованный минор. Фиксы безопасности попадают в main и выходят PATCH-релизом в течение нескольких дней.

Версия Поддерживается
0.1.x
старше ❌ — сперва обновитесь

Сообщение об уязвимости

Пожалуйста, не открывайте публичные issue по проблемам безопасности.

Напишите на phpcraftdream@gmail.com и укажите:

  • Краткое описание уязвимости.
  • Шаги или фрагмент для воспроизведения (Ktav-вход, запускающий поведение; затронутый API — loads / dumps / файловые варианты; ожидаемое против фактического).
  • Версию, на которой наблюдалось (обычно достаточно вывода pip show ktav) плюс OS / версию Python — чтобы понять, какой abi3-wheel использовался.
  • Предпочтительный таймлайн раскрытия, если у вас он есть.

Подтверждение получите в течение 72 часов. Опубликованный фикс обычно выходит в течение недели для высокоприоритетных проблем, дольше — если фикс нужно согласовать с Rust-крейтом или со спецификацией формата.

Область

Что считается проблемой безопасности для этого пакета:

  • Out-of-bounds чтения / записи или паники в скомпилированном модуле расширения _core (PyO3 ловит Rust-паники и пробрасывает их как pyo3_runtime.PanicException, так что интерпретатор выживает — но паника на доверенном входе всё равно репортится сюда как баг).
  • Неконтролируемое потребление памяти или CPU при разборе специально сформированного входа.
  • Любое поведение, при котором сформированный Ktav-вход выходит за ожидаемый value-домен (произвольная конструкция объектов, утечка памяти через расширение и т. п.).
  • Segfault-ы в обход PyO3-моста по паникам — это указывает на реальные проблемы soundness в unsafe и идёт в приоритет.

Что не считается проблемой безопасности здесь — пожалуйста, используйте обычные issue:

  • Регрессии производительности без характеристик crash / hang.
  • Несовпадения типа исключения, которые не эксплуатируются (например, ValueError там, где уместнее TypeError).
  • Проблемы в самом формате Ktav — им место в ktav-lang/spec.