Abnormal Security Messages — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Abnormal Security Messages (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Abnormal Security provides deep message analysis capabilities beyond basic threat detection. This skill covers message retrieval, header inspection, attachment analysis, sender authentication results, and delivery context. Use it when performing forensic analysis of specific emails or investigating delivery patterns.
messages only as evidence attached to a detected threat. It has no delivery pipeline, no queue, and no bounce record, so "trace this email" questions belong to the gateway: use Mimecast Message Tracking.
the remediation surface; use Abnormal Security Threats.
can show was already delivered. Pre-delivery holds are SpamTitan Quarantine or Proofpoint Quarantine.
These are response fields describing what Abnormal reports about a message. They are not tool parameters — the only parameters the message tools accept are threatId and messageId. Availability varies by message and by tenant configuration; treat any single field as best-effort.
| Field | Type | Description |
|---|---|---|
abxMessageId | string | Abnormal's identifier for the message, as returned in the abnormal_messages_list response |
subject | string | Email subject line |
fromAddress | string | From header email address |
fromName | string | From header display name |
toAddresses | string[] | All To: recipients |
ccAddresses | string[] | All CC: recipients |
bccAddresses | string[] | All BCC: recipients (if available) |
sentTime | datetime | When the email was sent |
receivedTime | datetime | When the email was received by Abnormal |
internetMessageId | string | RFC 5322 Message-ID header |
| Field | Type | Description |
|---|---|---|
senderAddress | string | Envelope sender address |
senderName | string | Sender display name |
senderDomain | string | Sender domain |
senderIpAddress | string | Originating IP address |
returnPath | string | Return-Path header (envelope sender) |
replyToEmails | string[] | Reply-To header addresses |
| Field | Type | Description |
|---|---|---|
spfResult | string | SPF check result: pass, fail, softfail, neutral, none |
dkimResult | string | DKIM signature result: pass, fail, none |
dmarcResult | string | DMARC policy result: pass, fail, none |
authenticationResults | string | Full Authentication-Results header |
| Field | Type | Description |
|---|---|---|
attachmentCount | int | Number of attachments |
attachmentNames | string[] | Filenames of attachments |
attachmentTypes | string[] | MIME types of attachments |
attachmentSizes | int[] | Sizes of attachments in bytes |
| Field | Type | Description |
|---|---|---|
urls | string[] | All URLs found in message body |
urlCount | int | Total number of URLs |
| Field | Type | Description |
|---|---|---|
isRead | boolean | Whether the recipient has read the email |
isInternal | boolean | Whether the email is internal (within org) |
isExternal | boolean | Whether the email is from outside the org |
remediationStatus | string | Current remediation status |
Two tools, and both are scoped to a single threat. There is no separate headers tool and no tenant-wide message search — you cannot ask "show me every message from this sender". Every message lookup starts from a threatId.
| Tool | Description | Parameters |
|---|---|---|
abnormal_messages_list | List the messages inside one threat case. Returns message IDs and summary data. | threatId (required) |
abnormal_messages_get | Full analysis of one message: metadata, headers, URLs, attachments, and AI threat analysis — all in a single payload. | threatId (required), messageId (required) |
abnormal_messages_get returns the header set as part of its one response, alongside URLs, attachments and the AI analysis. Everything the Header Analysis Workflow below asks for comes out of that single call — there is no second, header-only fetch to make, and nothing to page through. The practical consequence is on the other side: one abnormal_messages_get pulls the entire substance of a customer's email into context, including recipient addresses and Authentication-Results, whether or not you needed the headers. Call it when you intend to do forensics on that message, not to browse.
threatId is a UUID string. messageId is the message identifier from the abnormal_messages_list response (URL-encoded when sent). Do not confuse either with caseId, which abnormal_cases_get takes as a number.
List messages associated with a threat:
{
"tool": "abnormal_messages_list",
"parameters": {
"threatId": "184def76-3c28-4e1b-9ef0-a5abc123def4"
}
}Get one message in full (metadata, headers, URLs, attachments):
{
"tool": "abnormal_messages_get",
"parameters": {
"threatId": "184def76-3c28-4e1b-9ef0-a5abc123def4",
"messageId": "<[email protected]>"
}
}abnormal_messages_get returns the headersinline; there is no separate header call
invoice.pdf.exe).docm, .xlsm).zip, .rar, .7z) containing executables| Result | Meaning | Risk |
|---|---|---|
pass | Sending IP authorized by domain | Low |
softfail | IP not authorized but not explicitly denied | Medium |
fail | IP explicitly not authorized | High |
neutral | No SPF assertion | Medium |
none | No SPF record exists | Medium |
| Result | Meaning | Risk |
|---|---|---|
pass | Valid DKIM signature, aligned | Low |
fail | DKIM signature invalid | High |
none | No DKIM signature present | Medium |
| Result | Meaning | Risk |
|---|---|---|
pass | Passes DMARC policy (SPF or DKIM aligned) | Low |
fail | Fails DMARC policy | High |
none | No DMARC record exists | Medium |
| Code | Message | Resolution |
|---|---|---|
| 400 | Invalid message ID | Use a messageId taken from abnormal_messages_list, not a hand-built one |
| 401 | Unauthorized | Check API token |
| 404 | Message not found | Message may have been purged or threat ID is wrong |
| 429 | Rate limited | Wait and retry |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.