All vulnerabilities
HIGHAppSec

APPSEC-EXPERIAN-API-2021

API · Finance · Experian (Experian Connect API)

Summary

On 28 April 2021 KrebsOnSecurity reported that researcher Bill Demirkapi had found an unnamed student-loan lender's website performing credit checks via the Experian Connect API in a way that exposed the credit scores of tens of millions of Americans. The lender's loan-eligibility form took only a consumer's first name, last name, mailing address, and date of birth and used them to query Experian's API for an automated FICO lookup. The API enforced no meaningful authentication, and entering all zeros in the date-of-birth field still returned a result, so in practice only a name and address were required. For each consumer the API returned the credit score plus up to four 'risk factors' explaining why the score was not higher, which Demirkapi automated into bulk lookups. This maps to OWASP API2 Broken Authentication (no real auth on the endpoint, defeated by the date-of-birth bypass) combined with Excessive Data Exposure. Contrary to some accounts, no client-side API key was leaked; the flaw was missing authentication, not a leaked credential. Experian fixed the specific endpoint, while Demirkapi warned other lender integrations remained unsecured.

How to avoid it in your code

  • Require strong server-side authentication on every credit-lookup endpoint; never expose a partner API that returns PII to unauthenticated callers.
  • Validate and reject sentinel inputs like all-zero dates of birth instead of treating them as a passing identity check.
  • Enforce identity verification with enough factors that knowing a name and address alone cannot return a score.
  • Return only the minimal fields the caller is authorized to see; do not include risk-factor explanations by default.
  • Add rate limiting and anomaly detection to block automated bulk credit-score enumeration.

References

Related vulnerabilities

All AppSec →