В BSON-ruby был найден баг который в лучшем случае приводил к небольшому DoS, но большинство версий было уязвимо к инъекции в BSON (аналог SQL инъекции, BSON это бинарный аналог JSON используемый для работы с базой). На хабре уже [как то упоминалась][1] особенность регулярок в руби — у нас ^$ значат не просто начало и конец строки, но и новую строку \\n. Но тогда в примерах были лишь XSS «javascript:a()\\n
http://» и я давно искал пример, когда регулярки приводят к чему-то серьезному. И вот пару дней назад, во время аудита внешних библиотек нашего клиента, наткнулся на следующий код в BSON-ruby.
def legal?(str)
!!str.match(/^[0-9a-f]{24}$/i)
end
[Читать дальше →][2]
[1]:
http://habrahabr.ru/post/144139/
[2]:
http://habrahabr.ru/post/259569/#habracut