During resolution of DID logs, the didresolver verifies the data integrity proof of each log entry by checking if the signing key is authorized for the update. If an entry in the log omits the parameter containing the update keys, the associated verification function searches backward through the log history to locate the previously authorized key. This backward traversal is implemented as a recursive function call.
Each recursive call consumes additional stack memory. When processing a maliciously crafted log with a high number of sequential entries lacking the update keys parameter, the call stack exceeds its allocated limit. This memory exhaustion results in a stack overflow and leads to an immediate crash of the host process.
During resolution of DID logs, the didresolver verifies the data integrity proof of each log entry by checking if the signing key is authorized for the update. If an entry in the log omits the parameter containing the update keys, the associated verification function searches backward through the log history to locate the previously authorized key. This backward traversal is implemented as a recursive function call.
Each recursive call consumes additional stack memory. When processing a maliciously crafted log with a high number of sequential entries lacking the update keys parameter, the call stack exceeds its allocated limit. This memory exhaustion results in a stack overflow and leads to an immediate crash of the host process.