Comment 0 for bug 1380229

Revision history for this message
Jerry Zhang (jerryzh168) wrote :

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 nagios-nrpe-plugin 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 verification 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 nagios-nrpe-plugin:
[PDG]main'3
 [Found]SSL_connect()
 [HASH] 2600616823 [LineNo]@ 157[Kind]call-site[Char] SSL_connect()[Src] /home/roca/workspace/codebase/code/ubuntu_pkg/nagios-nrpe-plugin/nagios-nrpe-2.12/src/check_nrpe.c
 [INFO] API SSL_new() Found! --> [HASH] 4103224634 [LineNo]@ 154[Kind]call-site[Char] SSL_new()[Src] /home/roca/workspace/codebase/code/ubuntu_pkg/nagios-nrpe-plugin/nagios-nrpe-2.12/src/check_nrpe.c
 [INFO] API SSL_CTX_new() Found! --> [HASH] 4083349714 [LineNo]@ 235[Kind]call-site[Char] SSL_CTX_new()[Src] /home/roca/workspace/codebase/code/ubuntu_pkg/nagios-nrpe-plugin/nagios-nrpe-2.12/src/nrpe.c
 [Warning] No secure SSL_Method API found! Potentially vulnerable!!!

The result means that we found that nagios-nrpe-plugin uses ssl and it didn't invoke the method pertaining to the certificate, thus it is vulnearable if the certificate is tampered.

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://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf

Thanks.