All vulnerabilities
CRITICALAppSec

APPSEC-FIRSTAM-2019

API · Finance · First American Financial Corp.

Summary

On 24 May 2019 KrebsOnSecurity disclosed that First American Financial Corp. had exposed roughly 885 million mortgage and title records dating back to 2003, including Social Security numbers, bank account numbers and statements, wire transaction receipts, mortgage and tax records, and driver's license images. The records were served by First American's EaglePro document system at sequential URLs containing a nine-digit document reference number. No authentication of any kind was required, so anyone holding a single valid link could simply increment or decrement the document number in the URL to retrieve any other customer's document. This is a textbook Broken Object Level Authorization / IDOR flaw (OWASP API1) compounded by complete Broken Authentication (OWASP API2), with a user-controlled object identifier and no authorization or login check. The defect was introduced in a May 2014 software update and was flagged by First American's own penetration test in January 2019 but left unremediated; researcher Ben Shoval reported it after the company failed to respond. New York DFS later brought a cybersecurity enforcement action (settled for $1 million) and the SEC settled disclosure-controls charges for $487,616.

How to avoid it in your code

  • Enforce object-level authorization on every document request, checking the record belongs to the authenticated session before returning it.
  • Require authentication on every route, including direct document and file-serving endpoints, with no anonymous link access.
  • Use unguessable opaque identifiers for documents, but never treat the ID as a substitute for an access-control check.
  • Return only the documents the caller is authorized to see, scoped by their account and transaction.
  • Add rate limiting and anomaly detection to catch sequential enumeration or bulk document access.

References

Related vulnerabilities

All AppSec →