Executive brief
Open Babel, a software library used for processing chemistry data files, contains a memory-safety flaw in its PQS file parser. If a user opens a specially crafted, malicious PQS file using an application or service built with Open Babel, it could cause the program to crash or potentially expose small amounts of memory. This affects various programming language interfaces including Python, Java, and C#.
Technical details
An out-of-bounds (pre-buffer) read vulnerability exists in Open Babel versions up to 3.1.1 within the PQS parser. The flaw is located in the `lowerit` helper function used by `PQSFormat::ReadMolecule` in `src/formats/PQSformat.cpp`. When processing a malformed PQS input file, the helper may attempt to read memory bytes preceding the start of the allocated input buffer. This can lead to application crashes (denial of service) or limited information disclosure. The vulnerability can be triggered via the `obabel` CLI tool, the `OBConversion` API, or any language bindings (Python, Ruby, Java, etc.). The issue was addressed in version 3.2.0.
Affected products
- Open Babel openbabel All releases up to and including 3.1.1
Timeline
- 2025-09-14: disclosed: Initial bug report on GitHub
- 2026-05-26: patched: Version 3.2.0 released
- 2026-07-01: advisory: GHSA advisory published