Files
metasploit-gs/docs/metasploit-framework.wiki/Module-Reference-Identifiers.md
T
Valentin Lobstein f41eda1128 Add GHSA and OSV reference type support
Add support for GHSA (GitHub Security Advisories) and OSV (Open Source
Vulnerabilities) as structured reference types in Metasploit modules.

Convert 49 hardcoded GHSA URLs to structured ['GHSA', 'GHSA-xxxx'] format
across existing modules, and add support for repository-specific GHSA
references with an optional third parameter ['GHSA', 'GHSA-xxxx', 'repo'].

Update reference validation, module validator, and info_fixups to handle
the new reference types correctly.
2026-02-09 15:17:23 +01:00

2.5 KiB

On this page

A reference in a Metasploit module is a source of information related to the module. This can be a link to the vulnerability advisory, a news article, a blog post about a specific technique the module uses, a specific tweet, etc. The more you have the better. However, you should not use this as a form of advertisement.

List of supported reference identifiers

ID Source Code Example
CVE cvedetails.com ['CVE', '2014-9999']
CWE cwe.mitre.org ['CWE', '90']
BID securityfocus.com ['BID', '1234']
MSB technet.microsoft.com ['MSB', 'MS13-055']
EDB exploit-db.com ['EDB', '1337']
US-CERT-VU kb.cert.org ['US-CERT-VU', '800113']
ZDI zerodayinitiative.com ['ZDI', '10-123']
WPVDB wpvulndb.com ['WPVDB', '7615']
PACKETSTORM packetstormsecurity.com ['PACKETSTORM', '132721']
GHSA github.com/advisories or github.com/owner/repo/security/advisories ['GHSA', 'xxxx-xxxx-xxxx'] or ['GHSA', 'xxxx-xxxx-xxxx', 'owner/repo']
URL anything ['URL', 'http://example.com/blog.php?id=123']
AKA (deprecated*) anything ['AKA', 'shellshock']

Good to know
AKA names for modules are no longer stored as a reference identifier, but rather in the Notes metadata field as shown in the example below.

Code example of references in a module

class MetasploitModule < Msf::Exploit::Remote
  Rank = NormalRanking

  def initialize(info = {})
    super(
      update_info(
        info,
        'Name' => 'Code Example',
        'Description' => %q{
          This is an example of a module using references
        },
        'License' => MSF_LICENSE,
        'Author' => [ 'Unknown' ],
        'References' => [
          [ 'CVE', '2014-9999' ],
          ['BID', '1234'],
          ['URL', 'http://example.com/blog.php?id=123']
        ],
        'Platform' => 'win',
        'Targets' => [
          [ 'Example', { 'Ret' => 0x41414141 } ]
        ],
        'Payload' => {
          'BadChars' => "\x00"
        },
        'Privileged' => false,
        'DisclosureDate' => '2014-04-01',
        'DefaultTarget' => 0,
        'Notes' => {
          'AKA' => [ 'shellshock' ]
        }
      )
    )
  end

  def exploit
    print_debug('Hello, world')
  end

end