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
The mechanism of using list_descriptors and then open_descriptor as implemented leads to the following sequence of actions:
open /dev/whateverN
probe with ioctls or similar
close /dev/whateverN
put the results in a list
pick one
reopen /dev/whateverN
do FIDO HID on it
At this point, the identity of /dev/whateverN may have changed, if the port where HID N was connected from is disconnected and a new device inserted in its place. If that happens, fido2.hid will happily try to use the new device as if it were the old device, even if it bears no resemblance to the old one -- it may not be a FIDO HID at all.
To avoid this race, it is necessary to avoid the close/reopen cycle, or at least to verify nothing about the descriptor (on which any decisions were made, anyway) has changed since the close/reopen cycle.
The text was updated successfully, but these errors were encountered:
The mechanism of using list_descriptors and then open_descriptor as implemented leads to the following sequence of actions:
At this point, the identity of /dev/whateverN may have changed, if the port where HID N was connected from is disconnected and a new device inserted in its place. If that happens, fido2.hid will happily try to use the new device as if it were the old device, even if it bears no resemblance to the old one -- it may not be a FIDO HID at all.
To avoid this race, it is necessary to avoid the close/reopen cycle, or at least to verify nothing about the descriptor (on which any decisions were made, anyway) has changed since the close/reopen cycle.
The text was updated successfully, but these errors were encountered: