The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В инфраструктуре OSS Fuzz реализована поддержка проектов на языке Lua

24.01.2026 23:07 (MSK)

В инфраструктуру для непрерывного фаззинг-тестирования OSS-Fuzz добавлена возможность тестирования проектов, написанных на языке Lua, в дополнение к ранее поддерживаемым языкам C/C++, Go, Swift, Rust, Python, JavaScript и Java. Интеграция реализована с помощью проекта luzer, развивающего специализированный инструментарий для фаззинг-тестирования кода на языке Lua и расширений для Lua, написанных на C/C++.

Проект использует библиотеку libFuzzer и может применяться совместно с инструментами AddressSanitizer, MemorySanitizer, LeakSanitizer, ThreadSanitizer и Undefined Behavior Sanitizer, позволяющих на основе выявленных в процессе фаззинг-тестирования проблем, определять наличие типовых уязвимостей, вызванных переполнениями буфера, целочисленными переполнениями, обращением к неинициализированным и освобождённым областям, утечками памяти, разыменованием указателей и проблемами с установкой блокировок. Код проекта доступен под лицензией ISC.

В процессе работы luzer перебирает возможные комбинации входных данных и генерирует отчёт о всех выявленных сбоях и неперехваченных исключениях. Например, при проверке в luzer библиотеки разбора формата MsgPack antirez/lua-cmsgpack было выявлено, что данные с большим количеством массивов могут привести к переполнению стека.

В рамках проекта lunapark инструментарий luzer применяется для тестирования PUC Rio Lua, трассирующего компилятора LuaJIT, высокопроизводительной СУБД и сервера приложений Tarantool, а также для тестирования сторонних Lua-модулей.

Разработчики открытых проектов могут добавить свои репозитории для тестирования, подготовив шаблон фаззинг-тестирования и отправив специальную заявку через pull-запрос. При обнаружении ошибок, разработчикам автоматически отправляется уведомление и создаётся приватная заявка на исправление (чтобы исключить преждевременной утечки сведений об уязвимостях, тикет создаётся в системе отслеживания ошибок с ограниченным доступом). OSS Fuzz отслеживает состояние исправления ошибки и сам закрывает тикет, если он перестал воспроизводиться. Информация о проблеме становится публично доступной спустя 7 дней после исправления или спустя 90 дней с момента выявления ошибки, если проблема остаётся не исправленной.

  1. Главная ссылка к новости (https://groups.google.com/g/lu...)
  2. OpenNews: Google представил OSS-Fuzz, сервис для анализа безопасности открытого ПО
  3. OpenNews: Google открыл код ClusterFuzz, платформы для выявления ошибок и уязвимостей
  4. OpenNews: Представлен инструментарий Cascade, позволивший выявить 29 уязвимостей в процессорах RISC-V
  5. OpenNews: Оценка эффективности применения MiraclePtr для предотвращения уязвимостей в Chrome
  6. OpenNews: Методы безопасной работы с памятью позволили существенно снизить число уязвимостей в Android
Автор новости: sergeyb
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64668-fuzzing
Ключевые слова: fuzzing, lua
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (9) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, nataraj (ok), 07:19, 25/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Я бы хотел обратить внимание многоуважаемого сообщества, что проект OSS Fuzz существует не в вакууме, а является проектом Google, и для того чтобы что-то в него добавить или изменить, необходимо с оным Гуглом подписывать дополнительное соглашение о передаче им своего кода.

    один раз я в нем кой-чего поправил, и больше -- не буду...

    Нефига не свободный проект.

     
     
  • 2.5, Аноним (5), 10:30, 25/01/2026 [^] [^^] [^^^] [ответить]  
  • –5 +/
    так ведь иишки сами себя не обучат, а гитхаб они уже пережевали.

     
  • 2.9, Аноним (9), 21:26, 25/01/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это вообще не критерий свободности, это совершенно отдельная проблема. Код под свободной лицензией, значит вы можете вносить изменения и публиковать их, хоть форк свой поддерживать. Мейнтейнеры проекта могут какие угодно требования выставлять для включения кода в *свой* репозиторий или даже вообще не принимать код от сторонних разработчиков.
     
  • 2.10, Тот_Самый_Анонимус_ (?), 07:11, 26/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Совсем как фонд гну. Те тоже крайне нежелательно принимают код под ограничениями.
     
  • 2.11, Аноним (11), 11:40, 26/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >для того чтобы что-то в него добавить или изменить, необходимо с оным Гуглом подписывать дополнительное соглашение о передаче им своего кода

    GNU Project тоже так же требует. Я им тоже писал Copyright assignment letter, да ещё и просил босса подписать.

     

  • 1.6, fi (ok), 11:24, 25/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    судя по тому как lua падает от любого чиха, особенно вызов функ. с nil -  фаззинг ему не нужен, сразу считать код небезопасным.
     
     
  • 2.7, Смузихлеб забывший пароль (?), 11:44, 25/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Интеграция реализована с помощью проекта luzer

    Ну так и название у проекта подобающее

     
  • 2.12, Аноним83 (?), 15:03, 26/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А вы читали книжку по LUA?
    Я вот читал, и перечитывал.
    Там написано что при любой ошибке нужно вызывать luaL_error(), и оно вываливатся с ошибкой и вы получаете бэктрейс если у вас оно настроено.
    Это то поведение которое должно быть by design.

    Если вам нужна обработка таких исключений - это вы реализуете у себя в коде, делается не сложно.

     

  • 1.8, уп (?), 17:09, 25/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Лучший интерпретируемый язык.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру