Back to Checks
SMTP AUTH is disabled in the Exchange Online Transport Configuration
exchange_transport_config_smtp_auth_disabled
Service: exchangeSeverity: high
OfficialBuilt-inVerified
Categories:identity-accesse3
Resource Type:NotDefined
Microsoft 365 Exchange Online transport configuration disables authenticated SMTP submission (SMTP AUTH) at the organization level
Risk
With SMTP AUTH enabled, attackers can:
- Launch password spraying against mailboxes
- Bypass MFA on SMTP submissions
- Send unauthorized email, enabling internal spoofing and phishing
This undermines message integrity, aids lateral movement, and harms tenant reputation and deliverability.
Run this check with Prowler
Run in Prowler CloudRun
prowler m365 --checks exchange_transport_config_smtp_auth_disabledRecommendation
Disable SMTP AUTH tenant-wide and allow per-mailbox exceptions only when justified, time-bound, and monitored. Prefer modern authentication and secure submission alternatives. Apply least privilege and defense in depth, restrict app access, rotate secrets, and monitor send patterns for anomalies.
Remediation
CLI
Set-TransportConfig -SmtpClientAuthenticationDisabled $trueOther
1Open the Exchange admin center: https://admin.exchange.microsoft.com
2Go to Settings > Mail flow
3Turn on "Turn off SMTP AUTH protocol for your organization"
4Click Save
Check Code
from typing import List
from prowler.lib.check.models import Check, CheckReportM365
from prowler.providers.m365.services.exchange.exchange_client import exchange_client
class exchange_transport_config_smtp_auth_disabled(Check):
"""Check if SMTP AUTH is disabled in Exchange Online Transport Config.
Attributes:
metadata: Metadata associated with the check (inherited from Check).
"""
def execute(self) -> List[CheckReportM365]:
"""Execute the check for SMTP AUTH setting in Transport Config.
This method checks if SMTP AUTH is disabled at the organization level in Exchange Online.
Returns:
List[CheckReportM365]: A list of reports containing the result of the check.
"""
findings = []
transport_config = exchange_client.transport_config
if transport_config:
report = CheckReportM365(
metadata=self.metadata(),
resource=transport_config,
resource_name="Transport Configuration",
resource_id="transport_config",
)
report.status = "FAIL"
report.status_extended = (
"SMTP AUTH is enabled in the Exchange Online Transport Config."
)
if transport_config.smtp_auth_disabled:
report.status = "PASS"
report.status_extended = (
"SMTP AUTH is disabled in the Exchange Online Transport Config."
)
findings.append(report)
return findings