Vercel domains are verified
Vercel domains are assessed for ownership verification status. Unverified domains may not serve traffic correctly and could indicate a pending or incomplete domain setup. Domain verification confirms that the domain owner has authorized Vercel to manage the domain.
Risk
Unverified domains may fail to resolve or serve content, causing downtime for users. An unverified domain could also indicate a stale or orphaned configuration, or a domain that was added but never properly transferred, creating potential for domain takeover if the ownership verification is left incomplete.
Run this check with Prowler
Run in Prowler Cloudprowler vercel --checks domain_verifiedRecommendation
Complete domain verification by configuring the required DNS records at your domain registrar. Remove any domains that are no longer needed to reduce the attack surface. Regularly audit domain configurations to ensure all domains remain verified.
Remediation
Other
Check Code
from typing import List
from prowler.lib.check.models import Check, CheckReportVercel
from prowler.providers.vercel.services.domain.domain_client import domain_client
class domain_verified(Check):
"""Check if domains have been verified by Vercel.
This class verifies whether each Vercel domain has passed ownership
verification. Unverified domains may not function correctly and could
indicate domain misconfiguration or hijacking attempts.
"""
def execute(self) -> List[CheckReportVercel]:
"""Execute the Vercel Domain Verified check.
Iterates over all domains and checks if each is verified.
Returns:
List[CheckReportVercel]: A list of reports for each domain.
"""
findings = []
for domain in domain_client.domains.values():
report = CheckReportVercel(
metadata=self.metadata(),
resource=domain,
resource_name=domain.name,
resource_id=domain.id or domain.name,
)
if domain.verified:
report.status = "PASS"
report.status_extended = f"Domain {domain.name} is verified."
else:
report.status = "FAIL"
report.status_extended = (
f"Domain {domain.name} is not verified. "
f"The domain may not be serving traffic correctly."
)
findings.append(report)
return findings