Skip to content

Remove tls handling override when no pinner provided#775

Open
myeyesareblind wants to merge 1 commit intodaltoniam:masterfrom
myeyesareblind:fix/no-pinner-condition
Open

Remove tls handling override when no pinner provided#775
myeyesareblind wants to merge 1 commit intodaltoniam:masterfrom
myeyesareblind:fix/no-pinner-condition

Conversation

@myeyesareblind
Copy link

When no pinner was provided, it is expected that framework will use
whatever iOS will provide. But instead - it will allow ALL
connections, bypassing any verification.
This is breaking change, but most clients of the library probably
never had to do that.
Client can still allow selfSigned certs with FoundationSecurityError.allowSelfSigned.

When no pinner was provided, it is expected that framework will use whatever iOS will provide. But instead - it will allow ALL connections, bypassing any verification. This is breaking change, but most clients of the library probably never had to do that. Client can still allow selfSigned certs with FoundationSecurityError.allowSelfSigned.
@myeyesareblind
Copy link
Author

The problem I encountered in the first place is:
Wildcard certificates are not validated properly.

I couldn't understand how to fix that particular issue, so looked for a workarounds.
The workaround with pinner == nil looks dangerous to me.

@myeyesareblind myeyesareblind changed the title Remove default tls handling override when no pinner provided Remove tls handling override when no pinner provided May 12, 2020
@ghost
Copy link

ghost commented Apr 16, 2024

Hi @daltoniam @acmacalister,

As part of ongoing research, we found that the current behavior of Starscream does not use the normal iOS certificate verification logic if pinners are not provided. As a result, the default configuration is vulnerable to MITM attacks using, for example, valid TLS certificates for the wrong domain. This PR fixes the issue by not overriding the verifier if a pinner is not provided.

Could you please take a look at this PR? We believe it constitutes a vulnerability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant