PCRE2 before 10.48 allows a pcre2_dfa_match out-of-bounds write because reuse of a cached workspace block, in a recursive DFA matching workspace, lacks a size check (even though a newly allocated block, for the same purpose, does have a size check). This outcome requires an attacker-controlled regular expression, or a recursive pattern in conjunction with a small heap limit (this can be set through the API).
{
"binaries": [
{
"binary_name": "libpcre2-16-0",
"binary_version": "10.21-1"
},
{
"binary_name": "libpcre2-32-0",
"binary_version": "10.21-1"
},
{
"binary_name": "libpcre2-8-0",
"binary_version": "10.21-1"
},
{
"binary_name": "libpcre2-posix0",
"binary_version": "10.21-1"
},
{
"binary_name": "pcre2-utils",
"binary_version": "10.21-1"
}
]
}{
"binaries": [
{
"binary_name": "libpcre2-16-0",
"binary_version": "10.34-7ubuntu0.1"
},
{
"binary_name": "libpcre2-32-0",
"binary_version": "10.34-7ubuntu0.1"
},
{
"binary_name": "libpcre2-8-0",
"binary_version": "10.34-7ubuntu0.1"
},
{
"binary_name": "libpcre2-posix2",
"binary_version": "10.34-7ubuntu0.1"
},
{
"binary_name": "pcre2-utils",
"binary_version": "10.34-7ubuntu0.1"
}
]
}{
"binaries": [
{
"binary_name": "libpcre2-16-0",
"binary_version": "10.39-3ubuntu0.1"
},
{
"binary_name": "libpcre2-32-0",
"binary_version": "10.39-3ubuntu0.1"
},
{
"binary_name": "libpcre2-8-0",
"binary_version": "10.39-3ubuntu0.1"
},
{
"binary_name": "libpcre2-posix3",
"binary_version": "10.39-3ubuntu0.1"
},
{
"binary_name": "pcre2-utils",
"binary_version": "10.39-3ubuntu0.1"
}
]
}{
"binaries": [
{
"binary_name": "libpcre2-16-0",
"binary_version": "10.42-4ubuntu2.1"
},
{
"binary_name": "libpcre2-32-0",
"binary_version": "10.42-4ubuntu2.1"
},
{
"binary_name": "libpcre2-8-0",
"binary_version": "10.42-4ubuntu2.1"
},
{
"binary_name": "libpcre2-posix3",
"binary_version": "10.42-4ubuntu2.1"
},
{
"binary_name": "pcre2-utils",
"binary_version": "10.42-4ubuntu2.1"
}
]
}{
"binaries": [
{
"binary_name": "libpcre2-16-0",
"binary_version": "10.46-1build1"
},
{
"binary_name": "libpcre2-32-0",
"binary_version": "10.46-1build1"
},
{
"binary_name": "libpcre2-8-0",
"binary_version": "10.46-1build1"
},
{
"binary_name": "libpcre2-posix3",
"binary_version": "10.46-1build1"
},
{
"binary_name": "pcre2-utils",
"binary_version": "10.46-1build1"
}
]
}{
"binaries": [
{
"binary_name": "libpcre2-16-0",
"binary_version": "10.31-2ubuntu0.1~esm1"
},
{
"binary_name": "libpcre2-32-0",
"binary_version": "10.31-2ubuntu0.1~esm1"
},
{
"binary_name": "libpcre2-8-0",
"binary_version": "10.31-2ubuntu0.1~esm1"
},
{
"binary_name": "libpcre2-posix0",
"binary_version": "10.31-2ubuntu0.1~esm1"
},
{
"binary_name": "pcre2-utils",
"binary_version": "10.31-2ubuntu0.1~esm1"
}
]
}