From the Apache Traffic Server community, we have observed a new crash moving 
from openssl 1.0.1 to openssl 1.0.2.  The issue from our perspective is 
discussed in https://issues.apache.org/jira/browse/TS-4424.  The last couple 
comments are relevant to openssl.
Specifically, we are using a non-blocking socket.  When we us the dynamic 
record feature, we might call SSL_write() after a NEEDS_WRITE failure with a 
different write size.  As defined, this should cause an error.  Evidently this 
failure happened rarely enough that no one noticed it.  We will fix this error 
of usage within ATS.

But with openssl 1.0.2 instead of getting an error failure, we get an core 
dump.  Looking at openssl 1.0.2h in ssl/s3_pkt.c and comparing that to the 
openssl 1.0.1m version.  We see in ssl3_write_bytes() on line 686, the value of 
tot can get incremented after the change in write size had been checked for on 
line 670.  So when we call do_ssl3_write on line 830, the tot offset is way off 
the end of the buffer either causing an immediate ASAN error or an eventual 
memory error.
It appears that in open 1.0.1 the ssl3_write_pending call was in 
do_ssl3_write() and so did not impact the buffer offset.




-- 
Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4574
Please log in as guest with password guest if prompted

-- 
openssl-dev mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev

Reply via email to