Medium Severity

Body: CSS Hidden text via table-column

Description

Detects inbound messages containing elements styled with 'display: table-column' combined with a height or width of zero, effectively hiding the element from visual rendering. The rule flags cases where the hidden element contains more than 100 non-whitespace characters of inner text, a technique commonly used to conceal content from human recipients while still embedding it in the DOM to evade text-based or visual detection systems.

References

No references.

Sublime Security
Created Sep 3rd, 2026 • Last updated Sep 3rd, 2026
Source
type.inbound
and any(html.xpath(body.html, '//*[contains(@style,"table-column")]').nodes,
        regex.icontains(.raw, 'display\s*:\s*table-column')
        and (
          regex.icontains(.raw, '[;"\s]height\s*:\s*0')
          or regex.icontains(.raw, '[;"\s]width\s*:\s*0')
        )
        and regex.icount(.inner_text, '\S') > 100
)
MQL Rule Console
DocsLearning Labs

Playground

Test against your own EMLs or sample data.

Share

Post about this on your socials.

Get Started. Today.

Managed or self-managed. No MX changes.

Deploy and integrate a free Sublime instance in minutes.
Get Started