Homekit Attacks: Phantom Device Injection | AIMF Security

🏠 Case Study: Homekit Attacks & Phantom Devices

Phantom Device Injection β€” rapportd DoS Vulnerability

Educational data flow diagrams for research discussion on how a phantom device was injected into an iCloud account, triggering an 8-day denial-of-service attack on macOS.

⚠️ UNPATCHED πŸ§‘β€πŸ’» Hana Omori πŸ“œ CCPA Pending

1. Normal iCloud Device Authentication Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          β”‚      β”‚                          β”‚      β”‚                          β”‚
β”‚   USER'S DEVICE           β”‚      β”‚   APPLE ID AUTH SERVER   β”‚      β”‚   ICLOUD ACCOUNT         β”‚
β”‚                          β”‚      β”‚                          β”‚      β”‚                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚                                  β”‚                                  β”‚
             β”‚                                  β”‚                                  β”‚
             β”‚  1. Login with Apple ID + 2FA    β”‚                                  β”‚
             β”‚ ────────────────────────────────►│                                  β”‚
             β”‚                                  β”‚                                  β”‚
             β”‚                                  β”‚  2. Verify credentials           β”‚
             β”‚                                  β”‚ ────────────────────────────────►│
             β”‚                                  β”‚                                  β”‚
             β”‚                                  β”‚  3. Add device to trusted list  β”‚
             β”‚                                  β”‚ ◄────────────────────────────────│
             β”‚                                  β”‚                                  β”‚
             β”‚  4. Device now in Find My        β”‚                                  β”‚
             β”‚ ◄────────────────────────────────│                                  β”‚
             β”‚                                  β”‚                                  β”‚

How device authentication should work: User initiates, 2FA required, device added with user's naming convention

πŸ”‘ Key Points

  • User initiates β€” Authentication starts from the user's device
  • 2FA required β€” New devices must pass two-factor authentication
  • Correct naming β€” Device added with user's naming convention (lowercase "hana's")

2. Suspected Attack Flow (Phantom Device Injection)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    β”‚   β”‚                    β”‚   β”‚                    β”‚   β”‚                    β”‚
β”‚   ATTACKER         β”‚   β”‚   VICTIM'S PHONE   β”‚   β”‚   APPLE ID AUTH    β”‚   β”‚   ICLOUD ACCOUNT   β”‚
β”‚                    β”‚   β”‚                    β”‚   β”‚                    β”‚   β”‚                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚                        β”‚                        β”‚                        β”‚
          β”‚                        β”‚                        β”‚                        β”‚
          β”‚  1. Intercept via Stingray/Bluetooth            β”‚                        β”‚
          β”‚ ─────────────────────► β”‚                        β”‚                        β”‚
          β”‚                        β”‚                        β”‚                        β”‚
          β”‚                        β”‚                        β”‚                        β”‚
          β”‚  2. Extract auth tokens/session                  β”‚                        β”‚
          β”‚ ◄───────────────────── β”‚                        β”‚                        β”‚
          β”‚                        β”‚                        β”‚                        β”‚
          β”‚                        β”‚                        β”‚                        β”‚
          β”‚  3. Replay auth with phantom device details                              β”‚
          β”‚ ─────────────────────────────────────────────────────────────────────────►│
          β”‚                        β”‚                        β”‚                        β”‚
          β”‚                        β”‚                        β”‚                        β”‚
          β”‚  4. Phantom device added: "Hana's" (not "hana's")                        β”‚
          β”‚                        β”‚                        β”‚ ◄──────────────────────│
          β”‚                        β”‚                        β”‚                        β”‚

Attacker intercepts via Stingray/Bluetooth, extracts tokens, replays auth with phantom device

πŸ” Key Evidence

  • Wrong capitalization β€” Attacker used "Hana's" but victim uses "hana's"
  • Pixel correlation β€” Google Pixel 7 Pro briefly online Jan 25 β€” same day as estimated injection
  • No 2FA prompt β€” Victim never received a two-factor authentication request

3. rapportd DoS Loop (The Bug)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                        VICTIM'S MAC                                            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                                 β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚   β”‚                    β”‚       β”‚                    β”‚       β”‚                            β”‚     β”‚
β”‚   β”‚   ICLOUD SYNC       │──────►│   RAPPORTD DAEMON   │──────►│   PHANTOM: "Hana's MBP"   β”‚     β”‚
β”‚   β”‚                    β”‚       β”‚                    β”‚       β”‚                            β”‚     β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                                          β”‚                                 β”‚                   β”‚
β”‚                                          β”‚                                 β”‚                   β”‚
β”‚                                          β”‚  Try to connect                β”‚                   β”‚
β”‚                                          β”‚ ───────────────────────────────►│                   β”‚
β”‚                                          β”‚                                 β”‚                   β”‚
β”‚                                          β”‚  ❌ UNREACHABLE                 β”‚                   β”‚
β”‚                                          β”‚ ◄───────────────────────────────│                   β”‚
β”‚                                          β”‚                                 β”‚                   β”‚
β”‚                                          β”‚  ⚠️ NO BACKOFF - Retry NOW      β”‚                   β”‚
β”‚                                          β”‚ ───────────────────────────────►│                   β”‚
β”‚                                          β”‚                                 β”‚                   β”‚
β”‚                                          β”‚  ❌ UNREACHABLE                 β”‚                   β”‚
β”‚                                          β”‚ ◄───────────────────────────────│                   β”‚
β”‚                                          β”‚                                 β”‚                   β”‚
β”‚                                          β”‚  ♾️ INFINITE LOOP               β”‚                   β”‚
β”‚                                          β”‚  (8 days, 141,575 errors)       β”‚                   β”‚
β”‚                                          β”‚                                 β”‚                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The bug: rapportd has no exponential backoff or timeout β€” it retries forever

⚠️ The Vulnerability

  • No backoff β€” Immediate retry with no delay between attempts
  • No maximum β€” No limit on retry attempts
  • No timeout β€” Loops indefinitely until device is removed

Result: 8 days of DoS, 141,575 errors, 70x amplification

4. Evidence Destruction Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              β”‚                              β”‚                              β”‚
β”‚   VICTIM REMOVES PHANTOM      β”‚                              β”‚   ATTACKER MONITORING?        β”‚
β”‚                              β”‚                              β”‚                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚                                                             β”‚
               β”‚                                                             β”‚
               β”‚  23:37:00 - Remove phantom device from iCloud            β”‚
               β”‚ ───────────────────────────────────────────────────────────►│
               β”‚                                                             β”‚
               β”‚  23:37:46 - Network disruption begins (46 sec later)       β”‚
               β”‚ ◄───────────────────────────────────────────────────────────│
               β”‚                                                             β”‚
               β”‚  23:38:09 - Socket flows failed                           β”‚
               β”‚                                                             β”‚
               β”‚  23:38:22 - iCloud connection lost                        β”‚
               β”‚                                                             β”‚
               β”‚  23:38:48 - VPN tunnel stopped                            β”‚
               β”‚                                                             β”‚
               β”‚  ~23:40 - SYSTEM CRASH                                    β”‚
               β”‚  ════════════════════════════════════════════               β”‚
               β”‚  ❌ Logs from 23:37-23:40 DESTROYED                       β”‚
               β”‚  ❌ 30-day retention gap at this window                   β”‚
               β”‚  ❌ No forensic evidence of auth method                   β”‚
               β”‚                                                             β”‚

Suspicious timing: Network disruption began 46 seconds after phantom removal

⏱️ Timeline of Destruction

TimeEvent
23:37:00Victim removes phantom device
23:37:46Network disruption begins
23:38:09Socket flows failed
23:38:22iCloud connection lost
23:38:48VPN tunnel stopped
~23:40System crash β€” logs destroyed

Result: 30-day log retention shows gap exactly at resolution window.

5. OpenID Connect (OIDC) Attack Surface

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                   OIDC AUTHENTICATION FLOW                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚                        β”‚      β”‚                        β”‚      β”‚                        β”‚
     β”‚   USER AGENT           β”‚      β”‚   RELYING PARTY         β”‚      β”‚   IDENTITY PROVIDER    β”‚
     β”‚   (Browser)            β”‚      β”‚   (App)                 β”‚      β”‚   (Apple / Google)     β”‚
     β”‚                        β”‚      β”‚                        β”‚      β”‚                        β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚                               β”‚                               β”‚
                 β”‚  1. Login request             β”‚                               β”‚
                 β”‚ ─────────────────────────────►│                               β”‚
                 β”‚                               β”‚                               β”‚
                 β”‚  2. Redirect to IdP           β”‚                               β”‚
                 β”‚ ◄─────────────────────────────│                               β”‚
                 β”‚                               β”‚                               β”‚
                 β”‚  3. Authenticate with IdP                                     β”‚
                 β”‚ ─────────────────────────────────────────────────────────────►│
                 β”‚                               β”‚                               β”‚
                 β”‚  4. ID Token (JWT)                                            β”‚
                 β”‚ ◄─────────────────────────────────────────────────────────────│
                 β”‚                               β”‚                               β”‚
                 β”‚  5. Token to RP               β”‚                               β”‚
                 β”‚ ─────────────────────────────►│                               β”‚
                 β”‚                               β”‚                               β”‚
                 β”‚                               β”‚  6. Validate token           β”‚
                 β”‚                               β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ίβ”‚
                 β”‚                               β”‚                               β”‚

⚠️ VULNERABILITY POINTS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β€’ Token confusion: Relying party accepts token from wrong issuer                            β”‚
β”‚  β€’ Mutable ID: Using email instead of stable `sub` claim                                     β”‚
β”‚  β€’ Discovery attack: Trusting attacker-controlled metadata                                   β”‚
β”‚  β€’ Session hijack: Stolen tokens replayed for device authentication                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Both Apple and Google use OIDC β€” vulnerabilities in implementation can create cross-platform attack surfaces

πŸ›‘ Common OIDC Vulnerabilities

  • Token confusion β€” Relying party accepts token from wrong issuer
  • Mutable ID β€” Using email instead of stable sub claim
  • Discovery attack β€” Trusting attacker-controlled metadata
  • Session hijack β€” Stolen tokens replayed for device auth

6. Attack Timeline Visualization

Jan 25                                                                                    Feb 2
  β”‚                                                                                         β”‚
  β–Ό                                                                                         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚                                    8-DAY DoS WINDOW                                      β”‚
  β”‚                                                                                         β”‚
  β”‚   Pixel         Phantom           rapportd loop              Find My       Remove     β”‚
  β”‚   online        injected          ════════════════════      enabled       device     β”‚
  β”‚     β”‚             β”‚                      β”‚                       β”‚            β”‚       β”‚
  β”‚     β–Ό             β–Ό                      β–Ό                       β–Ό            β–Ό       β”‚
  β”‚   11:49        ~12:00             141,575 errors              23:23        23:37     β”‚
  β”‚    AM                               70x baseline                                       β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                              β”‚
                                              β–Ό
                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚  LOOP STOPPED        β”‚
                                    β”‚  IMMEDIATELY         β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                              β”‚
                                              β–Ό
                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚  46 sec later:       β”‚
                                    β”‚  Network attack      β”‚
                                    β”‚  + System crash      β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

8-day DoS window: Jan 25 (injection) β†’ Feb 2 (removal) β†’ Loop stopped instantly

πŸ“… Key Moments

Date/TimeEvent
Jan 25, 11:49 AMPixel 7 Pro briefly online
~Jan 25, 12:00Phantom device injected
Jan 25 - Feb 2141,575 rapportd errors (70x baseline)
Feb 2, 23:23Find My Mac enabled β€” phantom discovered
Feb 2, 23:37Phantom removed β€” loop stopped instantly

7. What We Need From Apple (CCPA Request)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                      CCPA DATA REQUEST                                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                                 β”‚
β”‚   REQUESTED DATA:                                                                              β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚   β”‚  β€’ Device addition logs for "Hana's MacBook Pro"                                         β”‚  β”‚
β”‚   β”‚  β€’ IP address used to add the device                                                     β”‚  β”‚
β”‚   β”‚  β€’ Authentication method (was 2FA bypassed?)                                             β”‚  β”‚
β”‚   β”‚  β€’ Session details (device/browser/API used)                                             β”‚  β”‚
β”‚   β”‚  β€’ Account access logs Jan 1 - Feb 6, 2026                                               β”‚  β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                                 β”‚
β”‚   DEADLINE: March 23, 2026 (45 days)                                                           β”‚
β”‚                                                                                                 β”‚
β”‚   IF DATA SHOWS:                                                                               β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚   β”‚  IP β‰  victim's known IPs      β†’   PROVES unauthorized access                            β”‚  β”‚
β”‚   β”‚  No 2FA in logs               β†’   PROVES bypass/compromise                              β”‚  β”‚
β”‚   β”‚  Device/browser mismatch      β†’   PROVES attacker fingerprint                           β”‚  β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Apple's server logs can prove unauthorized access β€” awaiting CCPA response by March 23, 2026

πŸ“‹ Requested Data

  • Device addition logs for "Hana's MacBook Pro"
  • IP address used to add the device
  • Authentication method (was 2FA bypassed?)
  • Session details (device/browser/API used)
  • Account access logs Jan 1 - Feb 6, 2026

What This Could Prove

  • IP β‰  victim's known IPs β†’ Proves unauthorized access
  • No 2FA in logs β†’ Proves bypass/compromise
  • Device/browser mismatch β†’ Proves attacker fingerprint

Summary

DiagramKey Insight
1. Normal Auth FlowUser initiates, 2FA required, correct naming
2. Attack FlowAttacker intercepts, bypasses 2FA, wrong capitalization
3. rapportd LoopNo backoff = infinite DoS from phantom device
4. Evidence DestructionCrash 46 sec after removal destroyed logs
5. OIDC SurfaceShared auth layer creates cross-platform risks
6. Timeline8 days of DoS, stopped instantly on removal
7. CCPA RequestApple's logs can prove unauthorized access