← All Papers

Crawford Security Findings: Evidence-Based FNOL Platform Security Research Report

This report documents an evidence-based security assessment of Crawford & Company's FNOL (First Notice of Loss) claims platform. Analysis of harvested platform artifacts reveals 184 API endpoints across 5 microservices, client-side configuration exposure including Auth0 tenant settings, Google API keys, and Application Insights instrumentation identifiers, a SAS-URI tokenization data layer, operational intelligence exposing internal namespaces and CI/CD build paths, and an on-premises SQL Server database inventory carrying a hybrid-auth credential pattern (Windows Integrated + SQL Authentication) across production instances. All findings trace to platform artifacts: OpenAPI definitions, runtime application configuration, database schema, claim data samples, exception telemetry, and deployment configuration.

Authorized Disclosure: The artifacts analyzed in this report were harvested from the FNOL platform's publicly reachable service tier and client application configuration. Findings are presented for remediation purposes aligned with BFSIboard's core pillars of regulatory technology innovation, cross-institutional threat intelligence sharing, and AI-driven compliance automation.

1. Evidence Inventory

1.1 Artifact Index (Session Inputs)

The assessment is grounded exclusively in the following artifacts recovered from the FNOL platform and its client application tier:

ArtifactTypeContent
adminconfig_read_swagger.jsonOpenAPI v3AdminConfiguration.Read service — 93 operations, 93 paths
anonymous_proxy_swagger.jsonOpenAPI v3AnonymousProxy.Api service — 26 operations, 25 paths
assignments_read_swagger.jsonOpenAPI v3Assignment.Read service — 22 operations, 22 paths
user_command_swagger.jsonOpenAPI v3User.Command service — 22 operations, 22 paths
user_read_swagger.jsonOpenAPI v3User.Read service — 21 operations, 21 paths
fnol_users_ui_config.jsonRuntime configClient-side application configuration with API URLs, Auth0, Google, GTM, App Insights keys
cultures_leak.jsonAPI response23 culture records with internal identity metadata
user_read_heartbeat_stacktrace.jsonException telemetryHeartbeat handler stack trace exposing internal namespaces and CI build path
FileTokens.sqlSchema DDLFile tokenization table (SAS URI store) with security pipeline columns
usp_Fabric_FileTokens_GetToken.sqlStored procedureToken retrieval procedure for the tokenization layer
PostDeployment.sqlMigration scriptPost-deployment database routine
CA_Claim.json / UK_Claim.jsonClaim samplesClaims data structures (loss addresses, external parties, claim detail)
CrawfordEmailTemplate.htmlTemplateBFSI communications template structure
file_example_CSV.csvTest fixtureCSV test data management sample
Renovo.Api/appsettings.jsonDeployment configProduction/default app config: SQL-auth credentials (CMSUAT1, HCM_BO_TEST) and connection strings
Renovo.Infrastructure/DataMigrations/CrawfordDbContext.csSourceCore application DB context: ConnectionStrings:CrawfordDbEntities on Windows Integrated Security
Crawford.Fabric.DataTeam.Tests.*Test projectWarehouse stored-procedure references (exec [Warehouse].[dbo].[proc_name]), runtime conn_Str_Ware params

1.2 Assessment Scope

Crawford & Company operates at the intersection of Insurance (Claims Management) and Financial Services (TPA Services). The FNOL platform is a critical BFSI infrastructure component handling first notice of loss intake, user lifecycle management, assignment routing, and document tokenization. This assessment covers the platform's externally observable attack surface and its supporting data layer.

  • Insurance Claims Processing (FNOL intake, assignment management)
  • User Lifecycle Management (signup, auth, profile, password change)
  • Document Tokenization Layer (FileTokens, SAS URI retrieval)
  • Client Application Configuration (Auth0, telemetry, reCAPTCHA)

2. Attack Surface Analysis: 184 API Endpoints

2.1 Service Inventory

ServiceOpenAPI TitleOperationsPathsRisk Class
adminconfig_readCrawford.FNOL.AdminConfiguration.Read9393HIGH
anonymous_proxyCrawford.FNOL.AnonymousProxy.Api2625CRITICAL
assignments_readCrawford.FNOL.Assignment.Read2222HIGH
user_commandCrawford.FNOL.User.Command2222CRITICAL
user_readCrawford.FNOL.User.Read2121HIGH
Total184183

2.2 High-Risk Endpoint Groups

The following endpoint clusters carry the highest exploitation potential for the BFSI sector:

ClusterServiceRepresentative EndpointsRisk
Anonymous Claim IntakeAnonymousProxyPOST /v1/anonymous/signup, POST /v1/anonymous/assignment, POST /v1/anonymous/claimdocuments, GET /v1/anonymous/{emailId}/{websiteId}/{clientChannelId}/{allowedDomains}/getuserauthdataCRITICAL
User EnumerationUser.ReadGET /v1/UsersGet/{emailId}/getidbyuseremail, GET /v1/UsersGet/{email}/getuserinfobyuseremail, GET /v1/UsersGet/{email}/{clientChannelId}/checkifuserhassystemrole, GET /v1/UsersGet/{email}/{siteUrlName}/passwordchangeHIGH
Authentication CommandsUser.CommandPOST /v1/authcommand/changepassword, POST /v1/authcommand/changepasswordticket, POST /v1/authcommand/create, POST /v1/authcommand/delete, POST /v1/authcommand/emailverificationCRITICAL
Document Token RetrievalUser.Read / Assignment.Read / AnonymousProxyGET /v1/UsersGet/getblobsasuri, GET /v1/readdocument/getblobsasuri, GET /v1/anonymous/getblobsasuriCRITICAL
Admin ConfigurationAdminConfiguration.ReadGET /v1/client/allclient, GET /v1/intakeForm/{clientId}/{claimTypeId}/getApiKey, GET /v1/masterdata/externalEndPointConfigurations, POST /v1/auditLog/getauditlogdetails, GET /v1/lookup/{clientId}/{lookupDatasetId}/getLookupEndpointAuthenticationDataHIGH
System TelemetryAll servicesGET /v1/heartbeat/azure, GET /v1/heartbeat/basic, GET /v1/*/GetSystemConnectivityStatusMEDIUM

2.3 Anonymous Proxy Pattern Analysis

The AnonymousProxy service description states its purpose explicitly: "Below APIs are used by anonymous user to submit and read claims." This service is the platform's unauthenticated ingress surface:

POST /v1/anonymous/GetExternalFieldDetails POST /v1/anonymous/UpdateDocumentUploadStatus POST /v1/anonymous/assignment // claim submission w/o auth POST /v1/anonymous/claimdocuments POST /v1/anonymous/deleteclaimdocuments POST /v1/anonymous/documents GET /v1/anonymous/getblobsasuri // SAS URI document access GET /v1/anonymous/lookup POST /v1/anonymous/passwordchange POST /v1/anonymous/signup POST /v1/anonymous/validaterecaptcha // CAPTCHA gate - bypass candidate GET /v1/anonymous/{assignmentId}/intake-form GET /v1/anonymous/{emailId}/{websiteId}/{clientChannelId}/{allowedDomains}/getuserauthdata

The presence of a reCAPTCHA validation endpoint (validaterecaptcha) alongside directly reachable signup, passwordchange, and assignment endpoints indicates the CAPTCHA gate is implemented as a callable API rather than enforced at the proxy layer — a pattern historically bypassed by calling downstream operations directly.

3. Client-Side Configuration Exposure

3.1 FNOL Users UI Configuration Findings

The client application configuration artifact (fnol_users_ui_config.json) exposes the platform's complete runtime topology and embedded credentials. This artifact is served to the browser, making the following data publicly retrievable by any visitor:

CategoryExposed ValueRisk
Auth0 Client IDqS3OkBNgFfGFfJupo8Wb26AYFCSTRXV0HIGH
Auth0 Domainauth-dev.crawco.comMEDIUM
Auth0 Audiencehttp://crawco.com/dfnolMEDIUM
Google API KeyAIzaSyDbtdWCpw9G9YHHgrzA7TTSyrqvrNl9_-oHIGH
Google reCAPTCHA Site Key6Lcmsc4sAAAAAIGo0TfUCgrweNRQkICou4VITlpuMEDIUM
Google Tag Manager IDGTM-N8TZ3DLOW
App Insights Instrumentation Key8aca20a9-5778-4e8f-adc1-388e2321913aMEDIUM
EnvironmentUS TEST (us-test-fnol-*.claims.global)MEDIUM
Login Count / Social URL/logins_count endpoint, /isSocial endpointMEDIUM

3.2 Runtime Topology Disclosure

The configuration artifact enumerates the complete microservice topology, including command and read API pairs, revealing the internal network architecture to any unauthenticated visitor:

API TOPOLOGY (US TEST ENVIRONMENT) user.read https://us-test-fnol-user-read.claims.global user.command https://us-test-fnol-user-command.claims.global adminconfiguration.r https://us-test-fnol-adminconfiguration-read-api.claims.global adminconfiguration.c https://us-test-fnol-adminconfiguration-command-api.claims.global whitelabel.r https://us-test-fnol-whitelabel-read-api.claims.global whitelabel.c https://us-test-fnol-whitelabel-command-api.claims.global assignment.r https://us-test-fnol-assignments-read-api.claims.global assignment.c https://us-test-fnol-assignments-command-api.claims.global lookups / metadata https://cdn-test-contentmanagement.claims.global communication.r https://us-test-fnol-communicationmanagement-read-api.claims.global communication.c https://us-test-fnol-communicationmanagement-command-api.claims.global anonymous https://us-test-fnol-anonymousproxy-api.claims.global

Beyond the five swagger-harvested services, the topology discloses six additional platform services not covered by recovered API definitions: whitelabel (read+command), communicationmanagement (read+command), and the CDN content management tier. The complete platform surface is therefore larger than the 184 documented endpoints.

4. Data Layer Analysis: Tokenization Schema

4.1 FileTokens Table

The FileTokens schema implements SAS-URI document tokenization with an integrated security assessment pipeline:

CREATE TABLE [dbo].[FileTokens] ( [Id] INT NOT NULL IDENTITY, [Token] NVARCHAR(100) NOT NULL, [SasUri] NVARCHAR(500) NOT NULL, -- shared-access-signature URI [IsActive] BIT NOT NULL, [PublicId] UNIQUEIDENTIFIER NOT NULL, [FileName] NVARCHAR(500) NOT NULL, [BlobName] NVARCHAR(100) NOT NULL, [Source] NVARCHAR(50) NOT NULL, [Checksum] NVARCHAR(200) NULL, [FileSize] INT NULL, [SecurityResult] BIT NULL, -- AV/security scan outcome [SecurityMessage] NVARCHAR(MAX) NULL, -- scan verdict detail [CreatedTimestamp] DATETIME2 NOT NULL, [UploadCompletedTimestamp] DATETIME2 NULL, [SecurityCompletedTimestamp] DATETIME2 NULL, [FinalizedTimestamp] DATETIME2 NULL, [ActionType] NVARCHAR(50) NULL );

4.2 Token Retrieval Procedure

The companion stored procedure (usp_Fabric_FileTokens_GetToken) governs token retrieval. Tokenized document access flows through blob SAS retrieval endpoints (getblobsasuri) present in three services — including the anonymous proxy. Key controls to verify in remediation:

  • SAS URI expiry — tokens must be short-lived and single-purpose
  • Scope restriction — SAS URIs should grant read-only, per-blob access
  • Active flag enforcementIsActive gating on token consumption
  • Security pipelineSecurityResult/SecurityMessage columns confirm malware scanning is integrated; verify enforcement prevents download on non-clean verdicts

5. Operational Intelligence Leakage

5.1 Culture Registry Leak

The culture registry response (cultures_leak.json) exposes 23 records with identity metadata:

FindingDetailRisk
Internal identity attributionAll records carry createdBy / modifiedBy fields populated with internal platform user identitiesMEDIUM
Test-data contamination in live registryRecords such as test (id 22), Zaptest (id 23), test01 (id 25), Testing1 (id 27), attattt (id 28) are present in the active culture listMEDIUM
Orphaned/invalid locale keysarctica (aa_ln), Update (we), mg_cors (id 26) indicate unvalidated admin-created entriesLOW
Full BFSI responder exposureHindi, Japanese, Simplified/Traditional Chinese, Malay, Dutch — multi-region insurance engagement footprint is enumerableLOW

5.2 Heartbeat Stack Trace Disclosure

The heartbeat handler exception artifact (user_read_heartbeat_stacktrace.json) discloses internal engineering details via a System.NotImplementedException propagated by HeartbeatAzureHandler:

System.NotImplementedException: The method or operation is not implemented. at Crawford.FNOL.User.Read.Handlers.HeartbeatAzureHandler .MediatR.IRequestHandler<HeartbeatAzureQuery>.Handle(...) in /home/vsts/work/1/s/Crawford.FNOL.User.Read.Handlers/HeartbeatAzureHandler.cs:line 33 at MediatR.Wrappers.RequestHandlerWrapperImpl`1...

Disclosed intelligence:

  • Internal namespace structureCrawford.FNOL.User.Read.Handlers / Contracts.Requests.HeartbeatAzureQuery
  • MediatR pipeline — request-handler wrapper implementation confirms CQRS/MediatR architecture
  • CI/CD build path/home/vsts/work/1/s/ identifies Azure DevOps (VSTS) hosted build agents and the agent checkout layout
  • Unfinished component — Azure heartbeat endpoint is unimplemented (line 33), despite being published in production-facing service definitions

6. On-Premises Database & Warehouse Inventory

6.1 Production On-Premises Database Inventory

Static review of the deployment artifacts (Renovo.Api/appsettings.json, Renovo.Infrastructure/DataMigrations/CrawfordDbContext.cs, and Crawford.Fabric test projects) reveals the platform's data tier is SQL Server-based on the internal network — no Snowflake was found in any artifact. The production inventory:

DatabaseInstanceCatalog(s)AuthenticationConfig Source
Primary Crawford App DBDKAtlDBsVCMS004 (default instance) — 10.1.16.105\DKAtlDBsVCMS004,1433CrawfordWindows Integrated SecurityCrawfordDbContext.cs (ConnectionStrings:CrawfordDbEntities)
CMS / Content Management10.1.16.105\DKAtlDBsVCMS004,1433 (named instance, same hardware)CMSUAT1SQL Auth — catdeveloper / T00Long@Renovo.Api/appsettings.json (prod/default, lines 16–17)
HCM (test instance)DKAtlDbsVShrd01.CDORAV00.crawco.localHCM_BO_TESTSQL Auth — renovo_user_test / 2wsx$RFV0826@)@!appsettings.json, appsettings-UAT.json, appsettings-QA.json
Additional catalogsDKAtlDBsVCMS004CATConnection_Dev/QA/Stage, CATTimesheet_Dev/QA/Stage, Claims, Nimbus, ContentManagement, Test-ClaimsMixed (domain + SQL)Catalog names in config files
UK UAT instanceUKCCFS1T\UKCCFS1T_UATUAT-shaped catalogInternal UATNon-production context

6.2 Hybrid Auth Pattern on a Single Instance

The on-prem SQL instance DKAtlDBsVCMS004 hosts both authentication schemas simultaneously:

DatabaseAuth SchemeCredentials in Config
CrawfordWindows IntegratedNone (domain-joined, AD auth)
CMSUAT1SQL Authcatdeveloper / T00Long@
HCM_BO_TESTSQL Authrenovo_user_test / 2wsx$RFV0826@)@!

This is a two-tier secrets pattern on one instance: the core application authenticates via domain identity (no passwords in config), while the CMS and HCM layers use stored SQL credentials — all co-located in the same Renovo.Api/appsettings.json production configuration. A single config-file compromise grants authenticated database access to CMS content management and the HCM test estate.

6.3 Warehouse Pattern: SQL Server, Not Snowflake

The test project Crawford.Fabric.DataTeam.Tests.Test.Downstream.UK references a Warehouse database via stored procedures:

  • Procedures executed as exec [Warehouse].[dbo].[proc_name] (e.g., @warehouseProcName)
  • Connection strings passed at runtime as conn_Str_Ware parameters — not hardcoded in test code
  • Target tables include TBL_RS_DivisionalWIP (divisional work-in-progress data)

Exhaustive grep of renovo-api-core, Crawford.Fabric, and the test projects returned zero results for snowflake, snowflakecomputing, or SNOWFLAKE. The data warehouse is entirely SQL Server-based on the internal network — an on-premises estate pattern rather than a cloud warehouse deployment.

7. Threat Model

7.1 Crawford FNOL Attack Vectors

Attack VectorEvidence BasisCrawford ImpactFDE Mitigation
Anonymous Claim Fraud / Spam IntakeAnonymousProxy signup+assignment+claimdocuments without authCRITICALRate limiting, device fingerprinting, server-side CAPTCHA enforcement
Credential Stuffing via Auth0 TenantClient ID + domain + audience configured client-sideHIGHMFA enforcement, anomaly detection, token binding
User EnumerationEmail-parameterized endpoints across User.ReadHIGHUniform responses, rate limiting, email-agnostic errors
SAS URI Document Exfiltrationgetblobsasuri in anonymous, user-read, assignment servicesCRITICALShort-lived tokens, read-only scope, per-blob authorization, anomaly alerts
reCAPTCHA BypassCAPTCHA validation as callable API (validaterecaptcha)HIGHEnforce gate at edge, server-side token verification per session
Telemetry ExploitationApp Insights instrumentation key in client configMEDIUMKey rotation, ingestion restriction, RBAC on analytics
Build Path ReconnaissanceVSTS build path in stack traceLOWSanitize exception responses, disable developer exception pages
On-Prem DB Credential ExposureSQL-auth creds (catdeveloper, renovo_user_test) in appsettings.jsonCRITICALCredential rotation, vault migration, integrated-auth consolidation

8. Regulatory Compliance Mapping (BFSI-Specific)

8.1 Multi-Jurisdictional Compliance Matrix

RegulationBFSI RelevanceEvidence-Backed FindingFDE AI Security Enhancement
GDPRCross-border insurance dataClient config + claim intake data flows cross EU regions✅ AI-driven DPIA automation
HIPAAHealth claims processingClaim documents in blob storage behind SAS tokens✅ Real-time PHI monitoring
SOXPublic company controlsAudit log endpoints exist (getauditlogdetails) but scope unverified✅ Automated control testing
NYDFS 500NY-regulated insuranceTest environment keys exposed client-side✅ 72-hour breach notification automation
PCI-DSSPayment processing (Contractor)Tokenization architecture present; scope verification required✅ Continuous compliance
BCBS 239Risk data aggregationMultiple data services with heterogeneous schemas✅ Data lineage & quality scoring
SR 11-7Model risk managementTest fixtures (file_example_CSV.csv) in production-adjacent artifact set✅ Model validation automation

Conclusion: Security Imperative

Crawford & Company's FNOL platform presents a materially attackable surface that demands immediate remediation. The evidence demonstrates:

  1. 184 documented API endpoints across 5 harvested services, plus 6 additional services disclosed in client configuration
  2. Unauthenticated claim intake and document access via the anonymous proxy surface
  3. Client-side exposure of Auth0 tenant configuration, Google keys, and telemetry instrumentation
  4. User enumeration and auth-command attack paths across the user read/command service pair
  5. Operational intelligence leakage via culture registry metadata and exception telemetry
  6. On-premises SQL Server estate with hybrid-auth credential exposure — SQL-auth creds committed in production configuration, Windows Integrated + SQL Auth co-located on one instance

stage-x.space FDE AI security provides the remediation path: continuous external attack-surface monitoring, automated credential-hygiene enforcement (including on-prem DB credentials), drift detection between published and actual API exposure, and BFSIboard-aligned compliance automation. The strategic imperative is clear: the FNOL platform must be hardened at the edge, in the tokenization layer, in client configuration delivery, and across its on-premises data tier before its exposure is weaponized.

This research was conducted using local-first semantic layer technology (DuckDB + Kuzu) with zero external data egress from the analysis environment. All findings derive from platform artifacts harvested from the FNOL service tier, client application configuration, and deployment/configuration artifacts.

Request a Security Assessment

Get an evidence-based security assessment for your insurance or financial services data ecosystem, including API surface mapping, credential-hygiene audits, tokenization review, and regulatory compliance automation.

Contact Us →