CVE-2022-46289
Executive Summary
CVE-2022-46289 is a critical out-of-bounds write vulnerability in Open Babel 3.1.1 (and master commit 530dbfa3) triggered through the ORCA file format parser, specifically within the nAtoms calculation logic. An attacker can deliver a specially-crafted malformed file that causes an integer wrap-around in the nAtoms calculation, resulting in a smaller-than-required buffer allocation — leading to heap-based out-of-bounds writes and potentially arbitrary code execution. The vulnerability carries a CVSS score of 9.8, reflecting its critical severity, and currently has no known patch or public exploit.
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
The vulnerability resides in the ORCA format parsing functionality of Open Babel, a widely used cheminformatics toolkit for interconverting chemical file formats. The NVD description identifies the root cause as an integer wrap-around (underflow/overflow) in the nAtoms calculation. When a malicious ORCA file specifies an atom count that, after arithmetic operations, wraps around to a small positive value, the parser allocates a buffer substantially smaller than the actual number of atoms subsequently written into it. This results in a heap-based out-of-bounds write condition.
The attack surface is file-based: an attacker crafts a malformed ORCA format file (typically with an .orca extension or a file explicitly parsed with ORCA format). When a victim opens this file using Open Babel tools (e.g., obabel, babel) or a software product that embeds Open Babel as a library for file format conversion, the parser processes the malicious header fields. The wrap-around causes insufficient heap allocation, followed by writes that exceed the buffer boundary. Depending on heap layout, this can corrupt adjacent objects, potentially leading to control-flow hijacking via overwritten function pointers or return addresses.
Insufficient technical detail is available beyond the NVD description; no CNA title, CWE classification, or patch information was provided. The vulnerability class is heap buffer overflow via integer wrap-around in a format parser, a well-understood weakness pattern. The lack of a CWE ID suggests incomplete vendor disclosure, but the description explicitly references "out-of-bounds write" and "small buffer allocation."
Exploitation Scenarios
No public PoC is available; the attack chain is inferred from the vulnerability class and NVD description.
Reconnaissance / Target Identification: An attacker identifies users of Open Babel — cheminformatics researchers, pharmaceutical companies, academic institutions, or any organization processing chemical file formats. Delivery vectors include social engineering (email attachments, shared research files), malicious websites hosting crafted ORCA files, or supply-chain compromise of files shared within research collaborations.
Triggering the Flaw: The attacker crafts an ORCA-format file with a manipulated nAtoms field — typically a very large 32-bit integer value. The parser's arithmetic (e.g., multiplying by atom size or adding header offsets) wraps around, producing a small allocation length while subsequent parsing logic assumes the original large count. When the parser writes atom data into the undersized buffer, it overflows.
Payload / Execution Method: At the vulnerability-class level, the out-of-bounds write is leveraged to corrupt adjacent heap metadata or function pointers. A classic exploit strategy would involve heap grooming to place critical objects (e.g., an object with a vtable pointer) adjacent to the overflowed buffer, then corrupting that pointer to redirect execution to attacker-controlled shellcode. Since the file can encode arbitrary binary data (e.g., within coordinate fields), the attacker can embed payload bytes in the same file.
Post-Exploitation Impact: Upon successful exploitation, the attacker achieves arbitrary code execution with the privileges of the user or service running Open Babel. In a batch-conversion pipeline (e.g., a server-side file converter), this could lead to full server compromise, lateral movement, data exfiltration of confidential chemical research, or ransomware deployment. In desktop environments, user-level compromise is achieved.
Impact Assessment
This vulnerability carries a CVSS score of 9.8 (Critical), with likely vector components: AV:N (network-deliverable via file), AC:L (no special conditions), PR:N (no privileges), UI:R (requires user interaction — opening a malicious file), and C:H/I:H/A:H (full confidentiality, integrity, and availability impact).
The business impact is significant for organizations in the chemical, pharmaceutical, and materials science sectors where Open Babel is a standard tool. A single malicious file opened by a researcher can result in:
- Confidentiality loss: Exfiltration of proprietary chemical research, patent-pending formulations, or national-security-relevant materials data.
- Integrity loss: File corruption, unauthorized modifications, or backdoor installation.
- Availability loss: Service disruption if Open Babel is used in automated pipelines, or ransomware on the compromised host.
The EPSS score of 0.00804 (53.3rd percentile) indicates low immediate exploitation probability in the wild, but the absence of a patch makes this a latent, severe risk — any adversary with the capability can weaponize it at any time. The lack of a CISA KEV entry suggests no confirmed in-the-wild exploitation to date, but this is a "ticking time bomb" scenario due to the unpatched status.
Detection Guidance
Sigma Rule
title: Open Babel ORCA File Processing — Potential Heap Overflow Trigger
id: 0d1e16a7-4c2b-4f5e-9a33-8d6a7b2f5c9e
status: experimental
description: Detects suspicious ORCA file submissions or Open Babel invocations that may trigger CVE-2022-46289 out-of-bounds write.
author: Valtersit Threat Intel
date: 2025/01/01
logsource:
category: process_creation
product: windows
detection:
selection_binary:
Image|endswith:
- '\obabel.exe'
- '\babel.exe'
selection_file:
CommandLine|contains|all:
- '.orca'
- '-i'
condition: selection_binary and selection_file
level: medium
falsepositives:
- Legitimate use of Open Babel to convert ORCA files
- Authorized batch processing of quantum chemistry outputs
YARA Rule
rule CVE_2022_46289_Open_Babel_ORCA_Heap_Overflow {
meta:
author = "Valtersit Threat Intelligence"
description = "Detects malformed ORCA files with suspicious nAtoms header fields likely to trigger integer wrap-around in Open Babel 3.1.1"
cve = "CVE-2022-46289"
severity = "critical"
date = "2025-01-01"
strings:
// ORCA output file format header markers common in files
$orca1 = "#" ascii fullword
$orca2 = "ORCA" ascii nocase
// Look for 32-bit values that when multiplied (by atom size) wrap around
// Typical atom size multiplier in parsers: 16 or 24 bytes
$candidate_count = /[*][ ]([0-9]{9,10})[ ]*./ ascii
condition:
uint32(0) == 0x3A43524F or // little-endian "ORCA:" magic
(all of ($orca*) and #candidate_count > 0) and
(// nAtoms value likely triggering wrap-around: > 2^31 / 24
filesize > 1000)
}
Suricata IDS Rule
alert tcp any any -> any any (msg:"CVE-2022-46289 Open Babel ORCA File Malformed Header — Potential OOB Write"; flow:established,to_client; file.data; content:"ORCA"; nocase; content:"nAtoms"; nocase; distance:0; pcre:"/nAtoms\s*=\s*[0-9]{10,}/i"; classtype:attempted-user; sid:202246289; rev:1; metadata:created_at 2025_01_01, updated_at 2025_01_01, cve CVE_2022_46289;)
Note: This rule matches on the ORCA file content transmitted over a network (e.g., file download/upload). It is a best-effort detection heuristic based on the large integer value pattern in the nAtoms field.
Elastic Detection
process where event.action == "start" and
process.name : ("obabel.exe", "babel.exe") and
(process.command_line : ("*.orca*", "*ORCA*") or
process.command_line : ("*-i*orca*", "*--input*orca*"))
Splunk SPL Query
index=windows sourcetype=XmlWinEventLog:Security OR sourcetype=WinEventLog:Microsoft-Windows-Sysmon/Operational
| search (Image="*\\obabel.exe" OR Image="*\\babel.exe")
| search CommandLine="*.orca*" OR CommandLine="*ORCA*"
| stats count by Computer, User, Image, CommandLine, _time
| sort - _time
| eval alert="CVE-2022-46289 Open Babel ORCA processing"
| table _time, Computer, User, Image, CommandLine, alert
Wazuh OSSEC Rule
<group name="openbabel_cve_2022_46289,">
<rule id="100622" level="12">
<if_sid>5712,5715</if_sid>
<match>obabel.exe|babel.exe</match>
<regex offset="after_match">\S+\.orca</regex>
<description>CVE-2022-46289 - Open Babel invoked on ORCA file (potential heap overflow exploitation)</description>
<group>attacks,exploitation,</group>
<mitre>
<id>T1203</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence is 0/4: no patch evidence exists from any tracked source, and the vendor has not issued a fix. This is an unpatched critical vulnerability.
Immediate Mitigations (no patch available):
- Restrict File Sources: Implement strict sandboxing for all files processed by Open Babel. Use isolated containers or VMs for batch conversion jobs. Never open ORCA files from untrusted sources on production systems.
- Input Validation: Where feasible, pre-validate ORCA files with an external parser to reject files with suspicious nAtoms counts (e.g., values > 100,000 atoms, which are chemically improbable for quantum chemistry outputs).
- Access Controls: Apply principle of least privilege to accounts running Open Babel. Disable web-facing file conversion features if not absolutely required.
- Network Egress Filtering: Restrict outbound traffic from systems running Open Babel to limit data exfiltration if the system is compromised.
- Monitor: Activate the detection rules above on endpoints and network ingress points handling ORCA files.
Patch/Upgrade Steps:
- Monitor the Open Babel GitHub repository, NVD, and mailing lists for a patched release. As of this report, master commit 530dbfa3 remains vulnerable.
- When a patched version is released, upgrade immediately. Consider pinning to a version released after the fix commit.
- If using a distribution package (e.g., via apt, conda, or Homebrew), check for backported patches from your packaging maintainers.
Long-Term Hardening:
- Implement a file-type allowlist: convert ORCA files to a trusted intermediary format (e.g., SDF) using a patched parser, then process the converted file.
- Vet the downstream dependencies and ensure the Open Babel library is updated as part of the organization's vulnerability management lifecycle.
- Adopt a zero-trust file processing posture — treat all chemical file formats as untrusted input, regardless of source.
- Consider replacing Open Babel with actively maintained alternatives (e.g., RDKit) if the organization does not strictly require ORCA support.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2022-46289
- Open Babel Official Project: https://openbabel.org
- Open Babel GitHub Repository: https://github.com/openbabel/openbabel
- CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (CVE-2022-46289 not listed — no in-the-wild exploitation confirmed)
- EPSS (Exploit Prediction Scoring System): https://www.first.org/epss/ (CVE-2022-46289 — EPSS score 0.00804)
No known threat actor campaigns or exploit-in-the-wild evidence were identified at the time of this report, and no public PoC or exploit code exists. The attack chain described above is inferred from the vulnerability class (integer wrap-around leading to heap buffer overflow) per the NVD description.
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.