The vulnerability is a classic out-of-bounds read in C++. The lowerit function in src/formats/PQSformat.cpp processes a character array s. Inside a loop, it checks for an equals sign '='. When found, it attempts to look at the preceding 4 characters to see if they are "file". However, it does not check if there are at least 4 characters before the '='. If a malicious PQS file is crafted with an '=' at the beginning of a line, the code will attempt to read from s[-4], s[-3], etc., which is before the allocated buffer. This leads to a crash and a denial of service, and potentially information disclosure. The vulnerable function is clearly OpenBabel::PQSFormat::lowerit as identified in the commit patch.