Detection rules › Sublime MQL

Attachment: CVE-2023-21716 - Microsoft Office Remote Code Execution Vulnerability

Severity
high
Type
rule
Source
github.com/sublime-security/sublime-rules

Attachment contains an RTF file with a font table defining an excessive number of fonts, used to exploit CVE-2023-21716.

Threat classification

Sublime's own taxonomy (not MITRE ATT&CK).

CategoryValues
Attack typesMalware/Ransomware
Tactics and techniquesExploit

Event coverage

Rule body MQL

type.inbound
and any(attachments,
        (
          .file_extension in~ ("rtf", "doc", "docx")
          or .file_extension in~ $file_extensions_common_archives
          or .file_extension in~ $file_extensions_macros
          or (
            .file_extension is null
            and .file_type == "unknown"
            and .content_type == "application/octet-stream"
            and .size < 100000000
          )
        )
        and any(file.explode(.),
                any(.scan.strings.strings, strings.ilike(., '*\fonttbl*'))
                and length(filter(.scan.strings.strings,
                                  strings.ilike(., '{\f*;}')
                           )
                ) > 10000
        )
)

Detection logic

Scope: inbound message.

Attachment contains an RTF file with a font table defining an excessive number of fonts, used to exploit CVE-2023-21716.

  1. inbound message
  2. any of attachments where all hold:
    • any of:
      • .file_extension in ('rtf', 'doc', 'docx')
      • .file_extension in $file_extensions_common_archives
      • .file_extension in $file_extensions_macros
      • all of:
        • .file_extension is missing
        • .file_type is 'unknown'
        • .content_type is 'application/octet-stream'
        • .size < 100000000
    • any of file.explode(.) where all hold:
      • any of .scan.strings.strings where:
        • . matches '*\\fonttbl*'
      • length(filter(.scan.strings.strings, strings.ilike(., '{\\f*;}'))) > 10000

Inspects: attachments[].content_type, attachments[].file_extension, attachments[].file_type, attachments[].size, type.inbound. Sensors: file.explode, strings.ilike. Reference lists: $file_extensions_common_archives, $file_extensions_macros.

Indicators matched (7)

FieldMatchValue
attachments[].file_extensionmemberrtf
attachments[].file_extensionmemberdoc
attachments[].file_extensionmemberdocx
attachments[].file_typeequalsunknown
attachments[].content_typeequalsapplication/octet-stream
strings.ilikesubstring*\fonttbl*
strings.ilikesubstring{\f*;}