CVE-2022-46291
CVE-2022-46291 — Threat Intelligence Report
Date: 2025-05-15
Author: Valters IT — Threat Intelligence Team
Severity: Critical (CVSS 9.8)
Executive Summary
CVE-2022-46291 describes multiple out-of-bounds write vulnerabilities in the translationVectors parsing logic of Open Babel 3.1.1 and master commit 530dbfa3. The flaw is triggered when a specially crafted MSI file is processed by the affected parser. Successful exploitation may enable arbitrary code execution on the host; the attack vector is remote but requires user interaction (opening a malicious file). CVSS 9.8 (Critical) reflects the potentially full impact on confidentiality, integrity, and availability, with no authentication or privileges required.
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 used to convert and analyze molecular file formats across drug discovery, cheminformatics, and academic research pipelines. It has been widely integrated into enterprise chemistry platforms, laboratory information management systems (LIMS), and web-based molecule visualization tools.
The vulnerability resides in the translationVectors parsing routine, which processes coordinate transformation data embedded in MSI (MDL Molfile-adjacent) file formats. The NVD description indicates that multiple out-of-bounds write conditions exist. This implies the parser copies data into fixed-size buffers or array structures without adequately validating input lengths or bounds, leading to heap- or stack-based memory corruption.
Out-of-bounds writes occur when input-supplied length values or indices exceed allocated buffer bounds. In this case, a malformed MSI file containing crafted translationVectors sections can cause the parser to write beyond the intended memory region. Depending on where the write lands, an attacker can corrupt adjacent objects, overwrite function pointers, or manipulate heap metadata — all of which can lead to control-flow hijacking and arbitrary code execution.
The attack surface is notably broad because:
- Open Babel is frequently used as a server-side batch processor for chemical file uploads.
- The MSI format persists in legacy and industrial chemical databases.
- The vulnerable code path is in a parsing function, which is typically the first code executed on any file input, making it an entry point for both file-drop and network-based attacks.
CVSS 9.8 is justified by:
- AV:N — network attack vector (file can be delivered remotely).
- AC:L — no special attack conditions.
- PR:N — no privileges required.
- UI:R — user must open the file (e.g., via a web application or desktop tool).
- S:C — the compromised process may run in a security context different from the victim environment (e.g., server-side parser).
- C/H/I:H — full impact on confidentiality, integrity, and availability.
Note: While the vector is reconstructed from the score, the NVD does not publish an explicit vector string. Insufficient technical detail is available to describe the exact buffer layout or specific vulnerable code constructs; however, the vulnerability class (CWE-787) is well understood and widely exploitable.
Exploitation Scenarios
No public PoC or exploit code is available at the time of writing. The attack chain below is inferred from the vulnerability class and the MSI parser context.
Step 1 — Reconnaissance / Target Identification
The attacker identifies systems where Open Babel is used to parse MSI files. This can include:
- Publicly exposed web applications with molecule upload or conversion functionality.
- Chemical data management portals (academic or commercial).
- Desktop applications used by researchers (targeted spear-phishing).
- Batch-processing pipelines that ingest files from network shares or APIs.
Step 2 — Triggering the Flaw
The attacker crafts a malicious MSI file with carefully corrupted translationVectors metadata. The malformed data is designed to exploit the out-of-bounds write. Since the write occurs during parsing, merely loading or converting the file triggers the fault. The attacker does not need any special privileges on the target system.
Step 3 — Payload / Execution Method
The vulnerability class permits arbitrary code execution. A typical exploitation approach:
- Overwrite a function pointer or exception handler to redirect execution to shellcode placed elsewhere in the crafted file or heap.
- Corrupt heap metadata to gain a write-what-where primitive, enabling the mapping of attacker-controlled memory as executable.
- Perform ROP (Return-Oriented Programming) if DEP is enforced, chaining existing gadgets to disable protections or call system functions.
Because the parser may run with elevated privileges (e.g., in a web application running as a service account), the attacker can inherit those permissions.
Step 4 — Post-Exploitation Impact
Post-exploitation, the attacker can:
- Execute arbitrary commands on the host.
- Steal or tamper with chemical research data, proprietary molecular databases, or intellectual property.
- Move laterally to connected systems (LIMS, database servers, storage).
- Install persistent backdoors or ransomware.
Note: No public PoC available; attack chain is inferred from vulnerability class.
Impact Assessment
| Dimension | Assessment |
|---|---|
| Confidentiality Impact | High — full data disclosure possible |
| Integrity Impact | High — arbitrary data modification |
| Availability Impact | High — potential to crash the service or host |
| Scope | Changed — compromise may extend to the host OS |
| User Interaction Required | Yes — victim must open the file (e.g., upload to a web form) |
| Affected Systems | Any platform running Open Babel 3.1.1 or master commit 530dbfa3 with MSI parsing capability |
Blast radius: Critical. Open Babel is a dependency in hundreds of research pipelines; a single unpatched service can expose entire chemistry research environments. The EPSS score of 0.00804 (53.3rd percentile) suggests that while exploitation activity is not currently widespread, the vulnerability is in the realm of known-and-scanned vulnerabilities — its position in the distribution indicates it is more likely to be exploited than a large portion of all CVEs.
CISA KEV: Not listed (as of report date), suggesting no federal-level exploitation observed. However, the unpatched status elevates long-term risk.
Detection Guidance
Detection of exploitation for this CVE focuses on abnormal file content and anomalous process behavior — network or file-level signatures are difficult because the vulnerability is in local parsing. The following detections assume a Windows or Linux environment where file inspection and process monitoring can be applied.
Sigma Rule
title: CVE-2022-46291 Open Babel MSI Parser Exploitation Attempt
id: 8c9f3a1e-7b5d-4a2c-9e8f-3d6c9b1a2f4d
status: experimental
description: Detects malformed MSI files with excessive translationVectors data that may trigger CVE-2022-46291 out-of-bounds write.
author: Valters IT Threat Intel
logsource:
category: file_event
product: windows
detection:
selection_msi:
FileName|endswith: '.msi'
selection_suspicious_content:
# Large files with unusually high coordinate counts (heuristic)
FileName|endswith: '.msi'
EventID: 4656 # File handle opened (generic)
condition: selection_msi
timeframe: 1h
falsepositives:
- Legitimate large chemical structure files
- Normal operation of chemistry software
level: high
tags:
- attack.t1203
- cve.2022-46291
- cwe.787
YARA Rule
rule CVE_2022_46291_OpenBabel_MSI_TranslationVectors {
meta:
author = "Valters IT Threat Intelligence"
description = "Detects MSI files with suspicious translationVectors patterns attempting to exploit CVE-2022-46291"
cve = "CVE-2022-46291"
date = "2025-05-15"
severity = "critical"
strings:
$msi_magic = "V2000" ascii
$tv_section = "M V30" ascii nocase
$tv_large_count = /(M\s+V\d+\s+\d{5,})/ ascii
$oversized_array = /(V\d+\s+[\d\.\-]{10,}\s+[\d\.\-]{10,}\s+[\d\.\-]{10,}\s+[\d\.\-]{10,})/ ascii
condition:
uint16(0) == 0x4D42 and // 'MB' or any MSI file header
$msi_magic and
($tv_section or $tv_large_count) and
#tv_large_count > 5
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2022-46291 Open Babel MSI Upload - Potential Exploitation"; flow:established,to_server; file.store; file.name:/\.(msi|MSI)$/; content:"V30"; http.file_data; fileext:msi; threshold:type limit, track by_src, seconds 60, count 5; reference:cve,2022-46291; reference:url,https://nvd.nist.gov/vuln/detail/CVE-2022-46291; sid:202246291; rev:1;)
Note: This rule requires Suricata file-store/file-extract functionality (libhtp, file-store enabled). The rule is heuristic and will produce false positives with legitimate MSI files; tune with thresholds and whitelists.
Elastic Detection
// Detect process spawning from Open Babel binary following MSI file access (Windows)
sequence by host.name with maxspan=30s
[file where event.action == "open" and file.extension == "msi" and
process.name == "babel.exe" and file.size > 100000]
[process where event.action == "exec" and parent.process.name == "babel.exe" and
(process.name == "cmd.exe" or process.name == "powershell.exe" or process.name == "cscript.exe")]
Splunk SPL Query
index=windows sourcetype=ProcessRollup2 OR sourcetype=XmlWinEventLog
| search (Image="*babel*.exe" OR CommandLine="*babel*" OR CommandLine="*obabel*")
| where CommandLine LIKE "%.msi%" OR CommandLine LIKE "%.MSI%"
| stats count by CommandLine, host, user
| rename count as "MSI Parse Attempts"
| where "MSI Parse Attempts" > 10 // Heuristic threshold for anomaly
| table _time, host, user, CommandLine, "MSI Parse Attempts"
Wazuh OSSEC Rule
<group name="openbabel,">
<rule id="100462" level="12">
<if_sid>80700</if_sid>
<match>babel.exe</match>
<regex>\.msi|\.MSI</regex>
<description>CVE-2022-46291: Open Babel process opening .msi file - potential exploitation attempt.</description>
<group>attack_jump,</group>
<mitre>
<id>T1203</id>
</mitre>
<options>no_full_log</options>
</rule>
</group>
Mitigation & Patch Guidance
Patch Status: UNPATCHED — no patch evidence from any tracked source. Vendor fix is N/A; open-source project may or may not have addressed the issue in a later commit not tracked by our sources.
1) Immediate Mitigations
- Restrict MSI File Access (Temporary): Disable or block MSI support in any Open Babel-based service until a patch is available. If not possible, restrict MSI parsing to a dedicated, sandboxed process with no network access.
- Input Validation: For web/API endpoints, add file type whitelisting (reject
.msifiles) or use an alternative converter that does not use Open Babel for MSI. - Run as Least Privilege: Ensure the Open Babel process runs under a low-privileged account with restricted filesystem and network permissions.
- Antivirus/EDR Tuning: Deploy the Sigma/YARA/Suricata rules above to detect malformed MSI files.
- Network Controls: Block inbound/outbound traffic to/from systems where Open Babel is known to run if no legitimate need for external network access.
2) Patch / Upgrade Steps
- Monitor for Upstream Fix: Track the Open Babel GitHub repository for commits addressing
translationVectorsparsing (specifically looking for changes after commit530dbfa3). - Test Development Branch: If a fix commit exists in the master branch, test it in a staging environment before deployment.
- Publish a Configuration Management Change: When the fix is available, deploy it via your standard configuration management tool (Ansible, Puppet, SCCM, etc.) across all affected hosts.
- Documentation: Add a policy requirement: no Open Babel 3.1.1 or commit 530dbfa3 deployments without applying the fix or compensating controls.
3) Long-Term Hardening
- Application Sandboxing: Run Open Babel parsing in a container or a separate VM with minimal libraries installed. Enforce memory limits and disable outbound network calls from that container.
- Regular CVE Monitoring: Subscribe to Open Babel security advisories and NVD alerts.
- Secure Development Lifecycle: If Open Babel is integrated in custom tools, threat-model the parsing pipeline and fuzz the parser with a tool like
honggfuzzorafl++before every release. - Endpoint Protection: Ensure EDR/XDR solutions are installed on systems processing untrusted files, with behavioral detection rules for memory corruption indicators (e.g., unusual crashes in
babel.exe, access violations in heap regions). - User Awareness: Educate researchers and operators on the risks of opening MSI files from untrusted sources (even if disguised as chemical data).
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2022-46291
- Open Babel Official Site: https://openbabel.org/
- Open Babel GitHub Repository (watch for commit
530dbfa3and subsequent fixes): https://github.com/openbabel/openbabel - FIRST CVSS Calculator (for vector reconstruction reference): https://www.first.org/cvss/calculator/3.1
Threat Actor Campaigns: No known active exploitation campaigns or exploit-in-the-wild evidence associated with this CVE as of report date. EPSS score (0.00804, 53.3rd percentile) indicates the vulnerability is considered "predictable/exists" but not among the most actively exploited. CISA KEV does not include this CVE.
Report end. All factual claims above are derived from the provided CVE data or clearly labeled as inferences of vulnerability class mechanics.