Overview › Security · A11y · Licenses (iOS)

Security · A11y · Licenses (iOS)

iOS-specific report.

Source: codebase scan · 2026-05-07

Executive summary

Strong baseline (cert pinning, Keychain, passkey, SecRandomCopyBytes). Gaps: ATS exception in NSE, App Privacy Manifest verification, no FLAG_SECURE-equivalent on sensitive screens, accessibility WCAG 2.2 conformance is poor.

Security controls matrix

ControlStatusEvidence
HTTPS-onlyPARTIALNSE has NSAllowsArbitraryLoads = true
Cert pinning (Alamofire / URLSession)PRESENTCostcoServerTrustManager
KeychainPRESENTStorage SPM wrapper
Passkey (FIDO2)PRESENTNokNok PasskeyManagerKit
Device intelligencePRESENTThreatMetrixKit
Secure randomPRESENTSecRandomCopyBytes in OIDC helper
App Privacy ManifestVERIFYRequired since 2024
Jailbreak detectionABSENTPlan + opt-in for sensitive flows
Screen capture block on sensitive screensABSENTPrivacy overlay on background
Insecure logging (print)REVIEW30+ print() statements
WKWebView lockdownREVIEWevaluateJavaScript audit; allow-list domains
NowSecure CI scanPRESENTazure-pipeline-nowsecure.yml

WCAG 2.2 conformance (iOS)

CriterionStatus
1.1.1 Non-text contentPARTIAL
1.3.1 Info and relationshipsPARTIAL
1.4.3 ContrastFAIL
1.4.4 Resize text (Dynamic Type)FAIL
2.4.7 Focus visiblePARTIAL
2.5.5 Target size (44pt)FAIL
4.1.2 Name, role, valuePARTIAL

Open-source / vendor licenses

Findings

CRITICAL

WCAG conformance gaps

Three FAILs (contrast, Dynamic Type, target size).
Recommendation: Adopt UIFont.preferredFont, contrast validation in design tokens, custom .minimumTapTarget() modifier.
HIGH

NSAllowsArbitraryLoads in NSE

Replace with NSExceptionDomains.
Costco iOS · Code Review Report · Generated 2026-05-07 · 88 machine-curated findings