@Sebahat.hadzhi
There are two things to distinguish :
1 - issues related to time delays, with an (authentic) MFA app on the client-side,
and this statement
Based on a test with Google Authenticator (Android) I performed, the code are being rejected if out of sync (2 seconds) occurs after the initial configuration.
addresses those issues.
I found (in the past) that the time delay is not consistent, in the sense that it was 1 second in one test, 10 seconds in another test and so on.
Testing is quite difficult, since time delays can occur for various reasons (on the server- or client-side or MFA-app-side), but the general challenge with testing is that Plesk Panel "remembers" previous MFA authentications and does not require renewals - another vector on the attack surface.
AND
2 - issues related to (false) authentication, mostly (but not always) without MFA apps on the client-side,
and this statement
However, based on the extension logic, you shouldn't be able to set up MFA on the client-side device if the time is not properly synchronized. If MFA is already set and unsyncing occurs afterward, the extension does reject codes.
is related to those issues.
In essence, it is not necessarily required to pass MFA, since there are workarounds that can be simple or quite elaborate.
The client-side device, like Google Authenticator, is designed to make access more difficult - not impossible.
The server-side code, depending on client-side input upon activation, does indeed require "synchronization".
However, the server-side code is not designed to make acces impossible - the same limitations apply to the server-side as they apply to the client-side.
As a simple explanation, imagine how many codes can be generated within a time frame of only 2 seconds - if all can be submitted, then probability certainly will increase that this brute-forcing technique can help gaining access.
As a more elaborate explanation, MFA codes can be intercepted or duplicated - this requires more skill, but even simple tricks will do.
In summary, there are (much) more ways to pass or bypass MFA, but that is another story.
In conclusion, it would be - at least in my humble opinion - a good idea if Plesk MFA is structured in such a way that
1 - MFA requires input of MFA code each and every time one has to log in - this is not the case now,
2 - Plesk closes the gap - any out of sync code should be rejected (not 2s, but zero seconds),
3 - MFA code (value) caching and caching of code underlying the MFA mechanism is completely absent,
and that should be adding some additional safety, in line with the true concept behind MFA.
It is just some food for thought.
Kind regards....