Remix.run Logo
▲ couchand a day ago

It's a Bad Idea (TM) to compile a regular expression from an untrusted input.

Despite what anyone would try to sell you, a regular expression is a programming language. It's Always A Bad Idea (TM) to compile untrusted input into any kind of programming language. Don't string concatenate SQL queries, eval is evil, it's all the same idea.

▲Blackthorn a day ago | parent | next [-]

A regex might be a programming language, a proper regular expression (which there are libraries for, like Google RE2) is just a regular language and I don't think you can even charitably call that a programming language.

▲luhn 12 hours ago | parent [-]

What's the difference between regex and regular expression? I always understood the former to be an abbreviation for the latter.

▲Gigachad 19 hours ago | parent | prev | next [-]

Despite this Ruby should have requested CVE numbers. They created a patch that was available to install and prevented this attack. CVE numbers would have triggered automations to update Ruby in everyones systems.

▲rendaw a day ago | parent | prev | next [-]

Why is it a bad idea, for either of those? Fundamentally?

▲quibono 20 hours ago | parent [-]

Yes, after all there is no distinction between data and code since they're the same thing when it comes down to the bytes in memory.

▲milkshakes a day ago | parent | prev [-]

> It's a Bad Idea (TM) to compile a regular expression from an untrusted input.

i agree with you!

nevertheless,

> where we nevertheless treated a double free in Regexp compilation as a vulnerability after a comprehensive assessment

not sure what sort of comprehensive assessment is still called for at this point?