You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stream establishment depends on get_client_pdu, which parses the PDU data from an in-memory buffer. When establishing an association, a temporary buffer is created and immediately dropped.
This usually does not pose an issue because an association acceptance is usually followed by the SCP waiting for data from the SCU. However, if for some reason the SCP tries to send an A-ASSOCIATE-AC plus one or more PDUs in quick succession, this can make the association client fetch more bytes than the ones necessary for reading a single PDU.
This is a regression from #542, which was mitigated by #590 so that it would work on other scenarios.
The text was updated successfully, but these errors were encountered:
Enet4
changed the title
Soundness issue in association establishment when association acceptor sends more PDUs in quick succession
Stream loss in association establishment when association acceptor sends more PDUs in quick succession
Nov 2, 2024
This is still an issue, though I'm not sure how much of an impact this has. So far I haven't stumbled upon any failures in association establishment.
I am honestly a bit more worried about get_client_pdu_async, which needs its temporary byte buffer plucked out onto the caller otherwise it can lose data between calls. This is something that should probably earn more attention, as it could put most async code at risk. Please let me know if you are available and willing to take either issue @naterichman . :)
I will try to take a look at both at some point! I'm pretty busy right now so it might not be for a month or so, but I think I'll first try to make a test to consistently reproduce that for both sync and async code.
Stream establishment depends on
get_client_pdu
, which parses the PDU data from an in-memory buffer. When establishing an association, a temporary buffer is created and immediately dropped.This usually does not pose an issue because an association acceptance is usually followed by the SCP waiting for data from the SCU. However, if for some reason the SCP tries to send an A-ASSOCIATE-AC plus one or more PDUs in quick succession, this can make the association client fetch more bytes than the ones necessary for reading a single PDU.
This is a regression from #542, which was mitigated by #590 so that it would work on other scenarios.
The text was updated successfully, but these errors were encountered: