X509 certificate verification problem
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
prayer (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Hostname verification is an important step when verifying X509 certificates, however, people tend to miss the step when using SSL/TLS, which might cause severe man in the middle attack and break the entire TLS mechanism.
We believe that prayer-accountd didn't check whether the hostname matches the name in the ssl certificate and the expired date of the certificate.
We found the vulnerability by static analysis, typically, a process of verfication involves calling a chain of API, and we can deduce whether the communication process is vulnerable by detecting whether the process satisfies a certain relation.
The result format is like this:
notice: Line Number@Method Name, Source File
We provide this result to help developers to locate the problem faster.
This is the result for prayer-accountd:
[PDG]ssl_
[Found]
[HASH] 282435988 [LineNo]@ 660[Kind]
[INFO] API SSL_new() Found! --> [HASH] 1396692037 [LineNo]@ 651[Kind]
[INFO] API SSL_CTX_new() Found! --> [HASH] 3247568991 [LineNo]@ 410[Kind]
[Warning] No secure SSL_Method API found! Potentially vulnerable!!!
We don't have a POC because we didn't succeed in configuring this software or don't know the way to verify the vulnerability. But through the analysis of the source code, we believe it breaks the ssl certificate verfication protocol.
for more information about the importance of checking hostname:
see http://
Thanks.
information type: | Private Security → Public |
information type: | Public → Public Security |
Changed in prayer (Ubuntu): | |
status: | New → Confirmed |
You're right, the client code doesn't seem to verify certificates, making TLS mostly pointless. However, traffic between prayer/ prayer- session, prayer-accountd, and the backend LDAP server typically is over the loopback interface or at least a trusted LAN, not over the public Internet, making the impact low. I'll see what I can do though.