CVE-2025-10994 Overview
CVE-2025-10994 is a use-after-free vulnerability in Open Babel versions up to 3.1.1. The flaw resides in the GAMESSOutputFormat::ReadMolecule function within gamessformat.cpp. An attacker with local access and low privileges can trigger the condition by supplying a crafted GAMESS output file to the parser. A public proof-of-concept has been published, increasing the likelihood of opportunistic exploitation against workstations that process untrusted chemistry data files.
Open Babel is a widely used open-source cheminformatics toolkit for converting molecular file formats. Because parsing routines run under the invoking user's context, successful exploitation is limited to local impact on confidentiality, integrity, and availability.
Critical Impact
Local attackers supplying a crafted GAMESS output file can trigger memory corruption in the Open Babel parser, potentially leading to process crashes or influenced execution flow within the user's session.
Affected Products
- Open Babel versions up to and including 3.1.1
- gamessformat.cpp parser component (GAMESSOutputFormat::ReadMolecule)
- Applications and pipelines embedding vulnerable Open Babel libraries
Discovery Timeline
- 2025-09-26 - CVE-2025-10994 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-10994
Vulnerability Analysis
The vulnerability is a use-after-free condition [CWE-119] in the GAMESSOutputFormat::ReadMolecule routine of gamessformat.cpp. Open Babel invokes this function when parsing output produced by the GAMESS quantum chemistry package. During parsing, the routine dereferences a pointer to an object whose backing memory has already been released. Continued access to that freed region produces undefined behavior, including crashes, data corruption, and, in some conditions, attacker-influenced control flow.
Exploitation requires the attacker to place a malicious GAMESS output file on the local system and have Open Babel process it. The parser trusts structural assumptions in the input, which lets a crafted file drive the object lifecycle into the vulnerable state. A public proof-of-concept archive is referenced from the GitHub Issue #2834 tracker.
Root Cause
The root cause is improper management of object lifetimes inside the GAMESS format reader. The code retains and reuses a pointer after the underlying allocation has been freed, violating memory safety invariants. Input parsing continues without validating that the referenced object remains valid.
Attack Vector
The attack vector is local. An attacker must convince a user, script, or automated pipeline to run Open Babel against a crafted GAMESS output file. No authentication to a remote service is required, but low privileges on the host are needed. The vulnerability does not permit remote exploitation over a network path.
See the referenced GitHub PoC archive and VulDB entry #325922 for technical artifacts.
Detection Methods for CVE-2025-10994
Indicators of Compromise
- Unexpected crashes or segmentation faults from the obabel binary or applications linking libopenbabel
- Presence of GAMESS output files (.gamout, .log) originating from untrusted sources in user download or temporary directories
- Core dumps referencing GAMESSOutputFormat::ReadMolecule or gamessformat.cpp frames
Detection Strategies
- Inventory hosts running Open Babel and identify versions at or below 3.1.1 through software asset management
- Monitor process execution telemetry for obabel invocations that consume files from non-trusted paths
- Enable AddressSanitizer or similar heap-tracking tools in test environments to surface use-after-free triggers during file parsing
Monitoring Recommendations
- Alert on repeated abnormal terminations of Open Babel-linked processes
- Log and review command-line arguments passed to obabel in shared research environments
- Track ingestion of GAMESS-format files through file integrity monitoring on chemistry workflow servers
How to Mitigate CVE-2025-10994
Immediate Actions Required
- Restrict Open Babel to trusted input files; do not process GAMESS output from unverified sources
- Isolate cheminformatics workloads in unprivileged accounts or sandboxes to bound the impact of parser crashes
- Remove or disable Open Babel on systems that do not require molecular format conversion
Patch Information
At the time of the NVD entry, no fixed release has been published by the Open Babel project. Track the upstream GitHub Issue #2834 for remediation status and rebuild from source once a patched commit is available.
Workarounds
- Avoid invoking the GAMESS reader by converting files with alternative tools until a patch ships
- Run Open Babel inside a container or seccomp-restricted process to contain memory corruption effects
- Apply mandatory access controls (AppArmor, SELinux) to limit filesystem and network reach of the parser process
# Configuration example: restrict obabel execution to a sandboxed user
sudo useradd -r -s /usr/sbin/nologin obabel-sandbox
sudo -u obabel-sandbox firejail --net=none --private-tmp \
obabel input.gamout -o smi -O output.smi
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

