rapid7/metasploit-framework

View on GitHub

Showing 13,691 of 19,405 total issues

Method is_match has a Cognitive Complexity of 182 (exceeds 5 allowed). Consider refactoring.
Open

  def is_match(params, module_metadata)
    return true if params.empty?

    param_hash = params

Severity: Minor
Found in lib/msf/core/modules/metadata/search.rb - About 3 days to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

File client.rb has 1386 lines of code (exceeds 250 allowed). Consider refactoring.
Open

module Rex
module Proto
module SMB
class Client

Severity: Major
Found in lib/rex/proto/smb/client.rb - About 3 days to fix

    File exe.rb has 1385 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    module Msf
    module Util
    #
    # The class provides methods for creating and encoding executable file
    # formats for various platforms. It is a replacement for the previous
    Severity: Major
    Found in lib/msf/util/exe.rb - About 3 days to fix

      Method run has 710 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

        def run
          print_status("Running MS SQL Server Enumeration...")
      
          if !mssql_login_datastore
            print_error("Login was unsuccessful. Check your credentials.")
      Severity: Major
      Found in modules/auxiliary/admin/mssql/mssql_enum.rb - About 3 days to fix

        Method run_host has 707 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

          def run_host(ip)
        
            begin
              snmp = connect_snmp
        
        
        Severity: Major
        Found in modules/auxiliary/scanner/snmp/snmp_enum.rb - About 3 days to fix

          File modules.rb has 1206 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          module Msf
            module Ui
              module Console
                module CommandDispatcher
          
          
          Severity: Major
          Found in lib/msf/ui/console/command_dispatcher/modules.rb - About 3 days to fix

            File constants.rb has 1171 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            module Rex
            module Proto
            module SMB
            class Constants
            
            
            Severity: Major
            Found in lib/rex/proto/smb/constants.rb - About 3 days to fix

              Method run has 602 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                def run
                  return if not check_dependencies
              
                  begin
                    # Get all values from v$parameter
              Severity: Major
              Found in modules/auxiliary/admin/oracle/oraenum.rb - About 3 days to fix

                Method run_host has a Cognitive Complexity of 143 (exceeds 5 allowed). Consider refactoring.
                Open

                  def run_host(ip)
                
                    begin
                      snmp = connect_snmp
                
                
                Severity: Minor
                Found in modules/auxiliary/scanner/snmp/snmp_enum.rb - About 2 days to fix

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Method mssql_get_hash has a Cognitive Complexity of 139 (exceeds 5 allowed). Consider refactoring.
                Open

                  def mssql_get_hash(arg = {})
                    ntlm_ver = arg[:ntlm_ver]
                    if ntlm_ver == NTLM_CONST::NTLM_V1_RESPONSE or ntlm_ver == NTLM_CONST::NTLM_2_SESSION_RESPONSE
                      lm_hash = arg[:lm_hash]
                      nt_hash = arg[:nt_hash]
                Severity: Minor
                Found in modules/auxiliary/server/capture/mssql.rb - About 2 days to fix

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Method cmd_wmap_run has 561 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                    def cmd_wmap_run(*args)
                      # Stop everything
                      self.masstop = false
                      self.killwhenstop  = true
                
                
                Severity: Major
                Found in plugins/wmap.rb - About 2 days to fix

                  Method html_get_hash has a Cognitive Complexity of 138 (exceeds 5 allowed). Consider refactoring.
                  Open

                    def html_get_hash(arg = {})
                      ntlm_ver = arg[:ntlm_ver]
                      if ntlm_ver == NTLM_CONST::NTLM_V1_RESPONSE or ntlm_ver == NTLM_CONST::NTLM_2_SESSION_RESPONSE
                        lm_hash = arg[:lm_hash]
                        nt_hash = arg[:nt_hash]
                  Severity: Minor
                  Found in modules/auxiliary/server/capture/http_ntlm.rb - About 2 days to fix

                  Cognitive Complexity

                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                  A method's cognitive complexity is based on a few simple rules:

                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                  • Code is considered more complex for each "break in the linear flow of the code"
                  • Code is considered more complex when "flow breaking structures are nested"

                  Further reading

                  File rdp.rb has 1073 lines of code (exceeds 250 allowed). Consider refactoring.
                  Open

                  module Msf
                  
                  ###
                  #
                  # This module exposes methods for interacting with a remote RDP service
                  Severity: Major
                  Found in lib/msf/core/exploit/remote/rdp.rb - About 2 days to fix

                    Method run has a Cognitive Complexity of 127 (exceeds 5 allowed). Consider refactoring.
                    Open

                    def run
                      @show_progress = datastore['ShowProgress']
                      @show_percent  = datastore['ShowProgressPercent'].to_i
                    
                      rhosts_walker  = Msf::RhostsWalker.new(self.datastore['RHOSTS'], self.datastore).to_enum
                    Severity: Minor
                    Found in lib/msf/core/auxiliary/scanner.rb - About 2 days to fix

                    Cognitive Complexity

                    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                    A method's cognitive complexity is based on a few simple rules:

                    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                    • Code is considered more complex for each "break in the linear flow of the code"
                    • Code is considered more complex when "flow breaking structures are nested"

                    Further reading

                    File rpc_db.rb has 1013 lines of code (exceeds 250 allowed). Consider refactoring.
                    Open

                    module Msf
                    module RPC
                    class RPC_Db < RPC_Base
                    
                    private
                    Severity: Major
                    Found in lib/msf/core/rpc/v10/rpc_db.rb - About 2 days to fix

                      Method create_library has 501 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                        def self.create_library(constant_manager, library_path = 'ws2_32')
                          dll = Library.new(library_path, constant_manager)
                      
                          dll.add_function('getaddrinfo', 'DWORD',[
                            ["PCHAR","pNodeName","in"],

                        File sys.rb has 999 lines of code (exceeds 250 allowed). Consider refactoring.
                        Open

                        require 'rex/post/meterpreter'
                        require 'rex/post/meterpreter/extensions/stdapi/command_ids'
                        
                        module Rex
                        module Post
                        Severity: Major
                        Found in lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/sys.rb - About 2 days to fix

                          Method get_registry has a Cognitive Complexity of 123 (exceeds 5 allowed). Consider refactoring.
                          Open

                            def get_registry(outlook_ver)
                              # Determine if saved accounts exist within Outlook.  Ignore the Address Book and Personal Folder registry entries.
                              outlook_exists = 0
                              saved_accounts = 0
                          
                          
                          Severity: Minor
                          Found in modules/post/windows/gather/credentials/outlook.rb - About 2 days to fix

                          Cognitive Complexity

                          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                          A method's cognitive complexity is based on a few simple rules:

                          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                          • Code is considered more complex for each "break in the linear flow of the code"
                          • Code is considered more complex when "flow breaking structures are nested"

                          Further reading

                          Method list has a Cognitive Complexity of 122 (exceeds 5 allowed). Consider refactoring.
                          Open

                            def list
                              tbl = Rex::Text::Table.new(
                                'Header'  => "Device Information",
                                'Indent'  => 1,
                                'Columns' =>
                          Severity: Minor
                          Found in modules/post/windows/gather/enum_devices.rb - About 2 days to fix

                          Cognitive Complexity

                          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                          A method's cognitive complexity is based on a few simple rules:

                          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                          • Code is considered more complex for each "break in the linear flow of the code"
                          • Code is considered more complex when "flow breaking structures are nested"

                          Further reading

                          File error.rb has 970 lines of code (exceeds 250 allowed). Consider refactoring.
                          Open

                          class RbMysql
                            class Error < StandardError
                              ERRNO = 0
                          
                              def self.define_error_class(prefix_re)
                          Severity: Major
                          Found in lib/rbmysql/error.rb - About 2 days to fix
                            Severity
                            Category
                            Status
                            Source
                            Language