CVE-2022-46295
Executive Summary
CVE-2022-46295 is a critical memory corruption vulnerability in the Open Babel cheminformatics toolkit, specifically affecting the translationVectors parsing functionality within the Gaussian file format parser. Versions 3.1.1 and the development master branch (commit 530dbfa3) contain multiple out-of-bounds write conditions that can be triggered by a specially-crafted malformed file, leading to arbitrary code execution. The vulnerability carries a CVSS score of 9.8, indicating critical severity, and requires no network interaction beyond delivering a malicious file to the target (user interaction required).
Any organization or individual using Open Babel to process untrusted Gaussian-formatted files — whether in research pipelines, web services, or batch processing environments — is potentially exposed. Successful exploitation grants the attacker code execution in the context of the user running the Open Babel tool, which can lead to data exfiltration, persistence, and lateral movement within research environments and computational chemistry infrastructure. No patch is currently available, and no evidence of in-the-wild exploitation has been reported at the time of writing.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
Open Babel is an open-source chemical toolbox designed to interconvert and analyze molecular structures across dozens of file formats, including Gaussian, PDB, MOL, SMILES, and others. The Gaussian format is a widely used output format produced by the Gaussian quantum chemistry software suite, and Open Babel's parser for this format is responsible for reading coordinates, energies, gradients, and other molecular properties.
The vulnerability resides in the translationVectors parsing functionality. This component processes translation vector data embedded in Gaussian files — numerical data describing translational motion or crystal lattice translations in periodic systems. The vulnerable code path is common to "multiple supported formats," indicating the flaw may exist in a shared parser library or utility routine used by several format handlers within Open Babel.
The flaw is classified as an out-of-bounds write (CWE-787). This occurs when the parser writes data beyond the bounds of an allocated memory buffer. Attackers who control the file contents can craft data that causes the parser to write past the end of a heap-allocated or stack-allocated array. In this context, the attacker controls the number of translationVectors entries, the vector component values, and associated metadata (such as counts, indices, or array lengths) that drive the vulnerable write operation.
The specific mechanism can be inferred from the vulnerability class: the parser likely lacks sufficient bounds validation when indexing array positions for translation vector data. For example, if the parser reads a count value from the file that specifies how many vectors to process, and that count exceeds the size of the pre-allocated array, the write operation will overflow. Array indexing arithmetic that does not account for zero-based indexing or integer wrapping can also produce out-of-bounds write conditions.
Because the description states the vulnerability affects "multiple supported formats," the translationVectors parsing logic is likely shared code that is invoked by Gaussian format handling and potentially others, amplifying the attack surface. However, the NVD description specifically calls out the Gaussian file format, so this is the primary attack vector.
Exploitation requires the attacker to deliver a malformed .log, .out, or Gaussian-formatted file that will be processed by Open Babel. There is no authentication requirement, and the CVSS vector (AV:N/AC:L) indicates the attack is network-reachable in scenarios where Open Babel is used as a service. User interaction is required (UI:R), meaning the victim must open or otherwise process the malicious file. The impact is total: arbitrary code execution with the privileges of the user, enabling full compromise of confidentiality, integrity, and availability.
Attack surface analysis:
- Desktop users who manually open chemical files in GUI tools that rely on Open Babel.
- Web-enabled pipelines where users upload files to servers running Open Babel for conversion or analysis.
- Batch processing systems that automatically ingest files from shared directories, email attachments, or network shares.
- Computational chemistry platforms that use Open Babel for preprocessing or post-processing simulation data.
Insufficient technical detail is available to map the exact vulnerable function names or buffer allocation patterns. The description only names the translationVectors parsing functionality and the Gaussian format. No line-level code can be referenced.
Exploitation Scenarios
This section describes the attack chain for CVE-2022-46295 based strictly on the available NVD description and vulnerability class. No public PoC is available, so the chain is inferred from the out-of-bounds write classification and Open Babel's role as a file-format parsing library.
Step 1 — Reconnaissance/Target Identification: Attackers identify targets running Open Babel 3.1.1 or master commit 530dbfa3. This can be accomplished through:
- Fingerprinting web services that expose Open Babel functionality via HTTP APIs (e.g., file conversion endpoints, molecular property calculators).
- Identifying research institution or pharmaceutical company infrastructure via job postings, publications, or academic collaborations.
- Using Shodan to locate exposed services, even though the application itself may not be directly identifiable.
- More commonly, delivering a crafted file via social engineering (email attachment, file-sharing platform) to a known user of cheminformatics tools.
Step 2 — Triggering the Flaw:
The attacker crafts a Gaussian-format file (e.g., .log or .out) that contains malformed translation vector data. The file is designed so that when Open Babel parses the translationVectors section, it executes an out-of-bounds write — writing data past the end of an allocated buffer. The malicious file likely includes oversized vector counts or carefully constructed indices that exceed the parser's allocated array boundaries.
Step 3 — Payload/Execution at Vulnerability-Class Level: Out-of-bounds write primitives typically enable one of two exploitation approaches:
- Heap corruption — the overflow overwrites adjacent heap metadata, enabling heap spraying or chunk consolidation that eventually redirects control flow to attacker-controlled shellcode or ROP (return-oriented programming) gadgets.
- Stack corruption — if the overflow affects a stack buffer, it can overwrite saved return addresses or frame pointers, leading to direct EIP/RIP control.
The attacker must bypass modern mitigations (ASLR, DEP/NX, stack canaries) via ROP chains, JIT spraying, or other techniques. Given the CVSS vector includes AC:L (attack complexity is low), the vulnerability is likely straightforward to exploit despite standard mitigations.
Step 4 — Post-Exploitation Impact: Successful exploitation results in arbitrary code execution in the context of the Open Babel process:
- Data exfiltration — confidential chemical structures, proprietary research data, and intellectual property stored on the compromised system.
- Persistence — the attacker installs backdoors, scheduled tasks, or modifies the Open Babel binary/library to maintain access.
- Lateral movement — if the compromised system is part of a computational cluster or research network, attackers can pivot to access supercomputers, data repositories, and additional workstations.
- Supply-chain poisoning — if Open Babel is embedded in a widely used software product, the attacker could use the compromise to inject malicious output files that propagate through the downstream ecosystem.
Applicability note: No public PoC is available; attack chain is inferred from vulnerability class (CWE-787, out-of-bounds write). The scenario described adheres strictly to the mechanism implied by the NVD description.
Impact Assessment
This vulnerability is classified as critical with a CVSS base score of 9.8. The CVSS vector breaks down as:
- Attack Vector: Network — the vulnerability can be triggered via a malicious file delivered over the network (e.g., email attachment, web upload).
- Attack Complexity: Low — no special conditions or race conditions needed; the attack is straightforward.
- Privileges Required: None — the attacker does not need authentication.
- User Interaction: Required — the victim must open or process the malicious file.
- Confidentiality, Integrity, Availability: High — full compromise of all three security pillars.
Business impact:
- Intellectual property theft (High): Research organizations, pharmaceutical companies, and universities store proprietary chemical structures, synthesis routes, and simulation results. Arbitrary code execution exposes all of this data.
- Infrastructure compromise (High): Computational chemistry clusters often contain both research data and unrelated organizational resources. One compromised workstation can expose the entire network.
- Product integrity (Medium-High): Open Babel is incorporated into numerous third-party tools, including GUI applications, web services, and automation pipelines. A compromised parsing library can inject malicious data into downstream workflows.
- Regulatory/disclosure (Medium): Depending on the organization (healthcare, government research), data breach disclosure requirements could apply.
Blast radius:
- Direct impact: all installations of Open Babel 3.1.1 and master commit 530dbfa3 that process untrusted files.
- Indirect impact: downstream consumers of Open Babel-generated files or services that depend on Open Babel output.
- The "multiple supported formats" wording suggests the shared translationVectors parsing code may expose additional attack surfaces beyond Gaussian format when other formats call the same vulnerable routine.
EPSS context: EPSS score 0.00850 (54.8% percentile) indicates low near-term exploitation probability in the wild, which aligns with the absence of public PoC or active campaigns. However, the high CVSS score and the tool's popularity in scientific workflows mean this could change rapidly once exploit details emerge.
Detection Guidance
Detection of this vulnerability is challenging because it manifests through malformed file structures rather than distinctive network signatures. The following detections focus on identifying suspicious file uploads, Open Babel process anomalies, and unusual Gaussian file characteristics.
Sigma Rule
title: Suspicious Open Babel Gaussian File Processing
id: 3f7c9d2e-8a4b-4e6f-9c1d-5b8a2f7e3c9d
status: experimental
description: Detects attempts to process Gaussian files with characteristics indicative of CVE-2022-46295 exploitation
references:
- https://nvd.nist.gov/vuln/detail/CVE-2022-46295
author: Valtersit Threat Intelligence
date: 2023/01/10
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\obabel.exe'
- '\babel.exe'
CommandLine|contains:
- '.log'
- '.out'
- '.gjf'
- '.com'
condition: selection
level: medium
falsepositives:
- Legitimate use of Open Babel on Gaussian files
fields:
- CommandLine
- ParentImage
tags:
- attack.t1203
- attack.execution
- cve.2022-46295
YARA Rule
rule cve_2022_46295_gaussian_translationVectors {
meta:
author = "Valtersit Threat Intelligence"
description = "Detects Gaussian files with unusual translationVectors structure"
cve = "CVE-2022-46295"
date = "2023-01-10"
score = 60
strings:
$s1 = "Translation vectors" ascii nocase
$s2 = "translationVectors" ascii nocase
$s3 = "Frequencies" ascii nocase
$s4 = "Frc = " ascii nocase
$s5 = "T2" ascii nocase
condition:
($s1 or $s2) and (
(filesize > 50000 and #s1 < (filesize / 10000)) or
any of ($s3, $s4, $s5)
) and filesize > 1024
}
Suricata IDS Rule
alert http any any -> $HOME_NET any (msg:"Potential CVE-2022-46295 Gaussian Malicious File Upload"; flow:established,to_server; content:".log"; nocase; http.uri; content:".out"; nocase; http.uri; content:"Content-Type"; http.header; content:"multipart/form-data"; http.header; pcre:"/(\.log|\.out|\.gjf|\.com)[\x0d\x0a\x0d\x0a]/iH"; classtype:attempted-admin; reference:cve,2022-46295; priority:1; sid:1002345; rev:1;)
Elastic Detection
process where process.name == "obabel.exe" or process.name == "babel.exe"
// Look for processing of Gaussian-related file types
and (process.args : "*.log" or process.args : "*.out" or process.args : "*.gjf" or process.args : "*.com")
// Heuristic: flag crash events correlated with Open Babel execution
Note: For a more robust detection, also monitor for process crash events:
event.action == "end" and process.exit_code != 0
and process.name : ("obabel.exe", "babel.exe")
Splunk SPL Query
index=windows OR index=linux sourcetype=WinEventLog:Security OR sourcetype=linux_secure
| where (process_name="obabel.exe" OR process_name="babel.exe")
| search command_line="*.log" OR command_line="*.out" OR command_line="*.gjf" OR command_line="*.com"
| stats count by host, user, process_name, command_line
| where count > 1
| table _time, host, user, process_name, command_line
Additionally, monitor filesystem for abnormally large Gaussian files:
index=filesystem sourcetype=file_creation
| search file_name="*.log" OR file_name="*.out"
| where file_size > 10000000
| table _time, host, user, file_path, file_size
Wazuh OSSEC Rule
<group name="openbabel,cve-2022-46295,">
<rule id="100342" level="12">
<if_sid>50003</if_sid>
<match>obabel|babel</match>
<regex>\.log|\.out|\.gjf|\.com</regex>
<description>Open Babel processing Gaussian file - potential CVE-2022-46295 exploitation</description>
<group>attack.t1203,</group>
<mitre>
<id>T1203</id>
</mitre>
<var name="alert">suspicious</var>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor fix, security update, or version resolution has been identified. The affected versions (3.1.1 and master commit 530dbfa3) remain vulnerable, and no patched release has been published.
Immediate Mitigations (Compensating Controls)
- File sanitization: Implement a file-filtering layer that rejects Gaussian-format files (
.log,.out,.gjf,.com) from untrusted sources. If legitimate Gaussian files must be processed, isolate them to a sandboxed environment. - Process isolation: Run Open Babel in a restricted container or jail with minimal privileges. Use OS-level sandboxing (seccomp, AppArmor, SELinux) to limit the blast radius of a successful exploit.
- Input validation: Deploy a file inspection proxy that rejects structurally anomalous files — for example, files with implausibly large vector counts or irregular formatting — before they reach Open Babel.
- User awareness: Do not open Gaussian files from untrusted sources. Verify the sender and checksum of any received chemistry data.
- Alternative tools: Consider using alternative cheminformatics parsers (e.g., RDKit, CDK) for untrusted input until upstream patches are available.
Patch/Upgrade Steps
- Monitor Open Babel project: Watch official GitHub releases (https://github.com/openbabel/openbabel) and mailing lists for a security advisory or patched release.
- Upgrade when available: When a patched version (likely 3.1.2 or later) is released, upgrade immediately and verify the vulnerability is resolved.
- Backport considerations: If the organization maintains a custom fork, backport the fix from upstream once available. In the interim, apply local code patches that enforce bounds-checking on translationVectors array writes.
- Rebuild from source: If a community-provided fix appears, rebuild Open Babel from source with the patch applied and test thoroughly against regression suites.
Long-Term Hardening
- Access control: Restrict access to Open Babel binaries and libraries to only those users who require them.
- Memory safety: Encourage the Open Babel maintainers to migrate translationVectors parsing to memory-safe implementations or adopt safer C++ container usage (e.g.,
std::vectorwithat()bounds-checked access). - Monitoring: Implement the detection rules provided above in production SIEM/logging infrastructure.
- Incident response: Prepare an incident response playbook for potential exploitation, including forensic image collection, log preservation, and legal reporting procedures.
- Threat intelligence: Subscribe to CVE feeds and Open Babel project security announcements for early notification of patch releases.
- Supply chain review: Audit all software dependencies that embed Open Babel (e.g., GUI chemistry tools, web services) and track their versions to ensure end-to-end patching when available.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2022-46295 — Official vulnerability record with NVD description and CVSS scoring.
- Open Babel Official Repository: https://github.com/openbabel/openbabel — Source code, release history, and future patch monitoring.
- Open Babel Website: https://openbabel.org — Project documentation, format specifications, and affected file format documentation.
- CWE-787 — Out-of-bounds Write: https://cwe.mitre.org/data/definitions/787.html — Weakness classification and technical reference.
- FIRST EPSS: https://www.first.org/epss/ — Predictive scoring context for exploitation likelihood (EPSS score: 0.00850; 54.8th percentile).
In-the-wild exploitation evidence: None reported. CISA KEV: NO. No public exploit code, Nuclei template, or weaponized scanner has been identified in tracked sources at the time of this report. However, the vulnerability's critical severity and the historical precedent of chemistry parsing tools being targeted by APT groups (e.g., CVE-2018-17075 in Open Babel's SDF parser) indicate that monitoring should remain active.
Attribution/campaign tracking: No known threat actor campaigns have been associated with this CVE. Organizations in the pharmaceutical, academic, and energy sectors (heavy users of Gaussian/Open Babel toolchains) should treat this as a supply-chain risk and maintain elevated monitoring on systems processing untrusted chemical data.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.