Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] - Invalid request validation while setting public did can lead to corrupt agent #3223

Open
PatStLouis opened this issue Sep 9, 2024 · 2 comments
Assignees

Comments

@PatStLouis
Copy link
Contributor

When creating a did with the sov method, it's possible to provide a did string. If you provide a did with more than 2 : delimiters, then promote this did to the public did, the agent won;t be able to restart as it's not parsing this input before sending it to indy-vdr for taa acceptence during startup process, resulting on failure to start.

To reproduce:
Start an agent pointing to a ledger. Create a new did using the sov method and provide a did string, such as did:indy:bcovrin:test:<nym>. Once created, set this created did as the public did then restart the agent. If the agent had persitent memory, it should then become unable to start since it's blindly passing the did string to indy_vdr, which is treating the did as a did:sov. It will crash.

Few options:

  • Attempt to contact the ledger when trying to promote the public did, if it fails, cancel the operation and don't promote did.
  • During the startup phase, handle failures on taa signing. This will make so the user can then access the admin interface and swap the public did to solve the issue.
  • Add did validation in the indy_vdr plugin and handle this type of error
@swcurran
Copy link
Contributor

Related to/duplicate of #3224

@PatStLouis
Copy link
Contributor Author

Somewhat related but the issue/result is different, definitely not a duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants