I'm working on fixing some GLIBC vulnerabilities and I have an issue
CVE-2015-8985 - Assertion failure in pop_fail_stack when executing a
malformed regexp

Although it seems to be fixed in glibc 2.28, I've encountered the following
issue testing on a Ubuntu 19.10 virtual machine with glibc 2.30-0ubuntu.2.1
the following program:


#include <assert.h>
#include <regex.h>
#include <stdio.h>

int main(int argc, char **argv)
    int rc;
    regex_t preg;
    regmatch_t pmatch[2];

    rc = regcomp(&preg, "()*)|\\1)*", REG_EXTENDED);
    assert(rc == 0);
    regexec(&preg, "", 2, pmatch, 0);
    return 0;

*pop_fail_stack: pop_fail_stack.c:12: main: Assertion `rc == 0' failed.*
*Aborted (core dumped)*

As describes the Debian bug
(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779392), the test
program compiles an invalid regexp and then tries to match a string
against it, triggers an assertion:

*pop_fail_stack: regexec.c:1401: pop_fail_stack: Assertion `num >= 0' failed.

So, in my scenario, the test program does not even successfully
compile the invalid regexp.

Did anyone encounter this issue?

Could you please help me with this?

Thank you,

Reply via email to