datatheorem / datatheorem/TrustKit

Crash at ssl_pin_verifier.m - Line 43

Open
#307 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Objective-C
Stars
2.1k
Forks
381
PR merge metrics
No merged PRs in 30d

Description

We updated from 2.0.1 to 3.0.2 and I can now see some crashes coming from Trustkit. We only have call stack as this happens with our production app.

Call stack:
trust
0 libsystem_kernel.dylib 0xc84 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x13b54 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x13e2c mach_msg_overwrite + 540
3 libsystem_kernel.dylib 0x11c8 mach_msg + 24
4 libdispatch.dylib 0x1f20c _dispatch_mach_send_and_wait_for_reply + 548
5 libdispatch.dylib 0x1f59c dispatch_mach_send_with_result_and_wait_for_reply + 60
6 libxpc.dylib 0x10218 xpc_connection_send_message_with_reply_sync + 240
7 Security 0x75e4 securityd_message_with_reply_sync + 124
8 Security 0x115e4 securityd_send_sync_and_do + 88
9 Security 0x1ddb8 __SecTrustEvaluateIfNecessary_block_invoke_3 + 516
10 Security 0xa4d0 SecOSStatusWith + 56
11 Security 0xf5ed4 __SecTrustEvaluateIfNecessary_block_invoke_2 + 116
12 libsystem_trace.dylib 0x72e0 _os_activity_initiate_impl + 64
13 Security 0xf5d50 __SecTrustEvaluateIfNecessary_block_invoke.437 + 292
14 libdispatch.dylib 0x3eac _dispatch_client_callout + 20
15 libdispatch.dylib 0x13428 _dispatch_lane_barrier_sync_invoke_and_complete + 56
16 Security 0xf59a4 SecTrustEvaluateIfNecessary + 532
17 Security 0xcf80 SecTrustEvaluateInternal + 48
18 OUR APP 0x1343270 verifyPublicKeyPin + 43 (ssl_pin_verifier.m:43)
19 OUR APP 0x1346714 -[TSKPinningValidator evaluateTrust:forHostname:] + 126 (TSKPinningValidator.m:126)
20 OUR APP 0x1346a44 -[TSKPinningValidator handleChallenge:completionHandler:] + 203 (TSKPinningValidator.m:203)
21 OUR APP 0x17d9d8 -[NBCertificatePinningChecker performCertificatePinningForChallenge:completionHandler:] + 62 (NBCertificatePinningChecker.m:62)
22 CFNetwork 0x77230 CFURLResponseCreateWithHTTPResponse + 22660
23 libdispatch.dylib 0x2320 _dispatch_call_block_and_release + 32
24 libdispatch.dylib 0x3eac _dispatch_client_callout + 20
25 libdispatch.dylib 0xb534 _dispatch_lane_serial_drain + 668
26 libdispatch.dylib 0xc0d8 _dispatch_lane_invoke + 436
27 libdispatch.dylib 0x16cdc _dispatch_workloop_worker_thread + 648
28 libsystem_pthread.dylib 0xddc _pthread_wqthread + 288
29 libsystem_pthread.dylib 0xb7c start_wqthread + 8

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with ssl_pin_verifier.m at line 43, then trace the call into TSKPinningValidator.m at lines 126 and 203. Use the provided production call stack to determine the failing trust-evaluation path; done means identifying the crash cause and confirming that certificate-pinning challenge handling no longer crashes.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, objective-c
Domain
mobile-dev, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.