QUERY · ISSUE
Crash in re.compile with crafted regular expression
bug
Port, board and/or hardware
unix port
MicroPython version
MicroPython v1.26.0-preview.387.g67acac257f.dirty on 2025-07-19; linux [GCC 12.2.0] version
Reproduction
Run the following code:
import re
def test_re(r):
try:
re.compile(r)
except:
print("Error")
# too many groups
test_re("((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((a)" * 256)
Expected behaviour
An exception saying that the regular expression is too complex
Observed behaviour
This consumes an amount of stack proportional to the number of open parens, exhausting the C stack, followed by a segfault.
Additional Information
This was found via automated fuzzing.
Code of Conduct
Yes, I agree
CANDIDATE · ISSUE
Assertion error on invalid string to compile()
bug
Port, board and/or hardware
unix port, coverage variant, x86_64 linux
MicroPython version
MicroPython v1.26.0-preview.521.g658a2e3dbd on 2025-08-02; linux [GCC 12.2.0] version
Reproduction
>>> compile("a\\\n", "", "eval")
micropython: ../../py/emitbc.c:356: mp_emit_bc_end_pass: Assertion `emit->stack_size == 0' failed.
Expected behaviour
Should throw a SyntaxError
Observed behaviour
crashes with an assertion failure
Additional Information
This crash was found by aflplusplus and minimized manually.
Code of Conduct
Yes, I agree