Sloppy iOS apps expose 'encrypted' user traffic
Bad TLS cert handling escaped Apple's attention and leaves 18 MEEELION at risk
Seventy-six iOS applications with an accumulated 18 million downloads between them are vulnerable to having their encrypted HTTPS traffic compromised.
That's the assertion made by Sudo Security's Will Strafach, who turned up the bugs while developing a scanner to analyse app binaries.
Strafach told The Register the problems arise because app developers are mishandling Transport Layer Security (TLS) certificate validation.
“The issue hinges on incorrect code used during development,” Strafach told us in an e-mail. “The issue boils down to mishandling of the code used for TLS validation. This code should normally not be touched or overridden, but unfortunately some developers have (hopefully accidentally) killed the validation checks in their apps.”
The result of the analysis detailed in Strafach's blog post: 33 apps with low-risk TLS bugs, 24 medium-risk bugs (“ability to intercept service login credentials and/or session authentication tokens for logged in users”, he writes), and 19 high-risk bugs (“ability to intercept financial or medical service login credentials and/or session authentication tokens for logged in users”).
Without responses from vendors, he told The Register it's hard to understand why the bugs crept into the apps. In some cases it's possible that the developers downgraded security during testing and forgot to fix it when the app went live.
There's two additional details that he highlights: these bugs are not mitigated by iOS's App Transport Security; and in at least some cases, with custom Wi-Fi hardware (or a modded phone), an attacker only needs to be within range of the victim.
For now, Strafach is withholding the identity of the medium-and-high-risk apps, giving the developers 60 to 90 days to respond. He also notes it's a class of vulnerability that's previously affected vendors as diverse as Shoretel, Cisco, Trend, Dell, and PayPal. ®
Sponsored: What next after Netezza?