VYPR
Unrated severityNVD Advisory· Published Oct 7, 2019· Updated Aug 5, 2024

CVE-2019-16263

CVE-2019-16263

Description

The Twitter Kit framework through 3.4.2 for iOS does not properly validate the api.twitter.com SSL certificate. Although the certificate chain must contain one of a set of pinned certificates, there are certain implementation errors such as a lack of hostname verification. NOTE: this is an end-of-life product.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Affected products

2
  • Twitter/Twitter Kit frameworkdescription
  • Twitter/Twitterllm-fuzzy
    Range: <=3.4.2

Patches

Vulnerability mechanics

Root cause

"Missing hostname verification in the custom TLS trust evaluation delegate allows any valid certificate chain containing a pinned CA public key to be accepted, regardless of the domain name."

Attack vector

An attacker with a valid certificate for any domain, issued by one of the pinned CAs (VeriSign, DigiCert, GeoTrust), can perform a man-in-the-middle attack against apps using TwitterKit for iOS to communicate with api.twitter.com [ref_id=1]. Because the framework's `evaluateServerTrust` method only checks whether the certificate chain contains a certificate whose public key hash matches the pinned list — without verifying the domain name — any valid chain from those CAs is accepted [ref_id=1]. The matching public key can appear at any position in the chain (leaf, intermediate, or root), further widening the attack surface [ref_id=1]. The attacker redirects traffic for api.twitter.com to their own server, presenting their legitimate certificate, and the app accepts it, allowing interception of all API communications [ref_id=1].

Affected code

The vulnerability resides in the TwitterKit framework's custom TLS validation method `evaluateServerTrust` (up to version 3.4.2). The framework implements its own server trust evaluation delegate method for public key pinning, overriding iOS's default certificate validation. The code maintains an array of 21 public key hashes for trusted root CAs (VeriSign, GeoTrust, DigiCert) and a "TWITTER1" entry, but does not verify the domain name of the leaf certificate [ref_id=1].

What the fix does

No patch or fixed version exists — TwitterKit for iOS is an end-of-life product and Twitter has not released a remediation [ref_id=1]. The advisory notes that a simple fix would have been to additionally call iOS's `SecTrustEvaluate` method and use its result to reject certificates that do not match the expected domain name [ref_id=1]. The only recommended mitigation is for app developers to migrate away from TwitterKit and switch to alternative APIs [ref_id=1].

Preconditions

  • configThe target app must use TwitterKit for iOS version 3.4.2 or earlier to communicate with api.twitter.com
  • inputThe attacker must control a domain with a valid TLS certificate issued by one of the pinned CAs (VeriSign, DigiCert, or GeoTrust)
  • networkThe attacker must be positioned to intercept network traffic between the victim app and api.twitter.com (e.g., on a shared Wi-Fi network or compromised router)

Generated on May 25, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

3

News mentions

0

No linked articles in our index yet.