Executive brief
Open Babel, a widely used library for converting chemistry and molecular data files, contains a memory safety flaw in its MOL2 file parser. If a user or automated service processes a specially crafted chemistry file, an attacker could potentially execute malicious code or crash the application. This affects researchers and organizations using Open Babel's command-line tools or its programming interfaces in Python, Java, and other languages.
Technical details
An out-of-bounds write vulnerability exists in Open Babel's MOL2 format parser within the `ReadMolecule` function in `mol2format.cpp`. The flaw is located in the attribute/value parsing logic where `sscanf` is used to read data into fixed-size 32-byte buffers (`attr` and `val`) without sufficient bounds checking. By providing a crafted MOL2 file with over-long attribute or value strings, an attacker can overflow these buffers. This can lead to memory corruption and arbitrary code execution. The vulnerability can be triggered via the `obabel` CLI tool, the `OBConversion` API, or any language bindings. A patch is available in version 3.2.0.
Affected products
- Open Babel Open Babel <= 3.1.1
Timeline
- 2022-10-24: other: Vulnerability discovered/assigned
- 2023-07-21: disclosed: Initial Talos report published
- 2026-05-26: patched: Version 3.2.0 released
- 2026-07-01: advisory: GitHub Advisory published
References
- https://github.com/openbabel/openbabel/security/advisories/GHSA-vjg6-gm8m-v5g6
- https://github.com/openbabel/openbabel/commit/4110d59ada242139fb02098e1e1faff57ac4dd51
- https://talosintelligence.com/vulnerability_reports/TALOS-2022-1664
- https://www.talosintelligence.com/vulnerability_reports/TALOS-2022-1664
- https://api.github.com/repos/openbabel/openbabel/security-advisories/GHSA-vjg6-gm8m-v5g6