Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.6.0
-
None
-
linux,jdk1.8
Description
When our application call method 'writePacket' to send this message to the client, found that ssh client throws KeyExchange signature verification failed.
We found that calling method 'writePacket' will check if a re-keying is required and modify the reference of the array 'i_s' in the method 'setKexSeed',
and our application may reveive the message 'SSH_MSG_KEXINIT'at the same time; when received the message 'SSH_MSG_KEXINIT', the class 'DHGServer' will be
initialized using the array 'i_s'. But in our multithreaded testing, the value of the array 'i_s' in the class 'DHGServer' not up to date, which results in
inconsistent digital signature between the client and the server, so ssh client throws KeyExchange signature verification failed.
I am wondering is this a multithreaded problem that is ignored. Please help me, thank you.