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
When a user wants to cast a ballot, the frontend server will request the election public key from a blockchain node. And the ballot will be encrypted using the public key.
However, if the frontend requests the public key from a compromised blockchain node, the adversary can reply with a fake public key to the user. Then it can decrypt the ballot if the user uses the public key for the encryption.
Source
“web/frontend/src/pages/ballot/Show.tsx” function sendBallot
“pubKey” is derived from the function “web/frontend/src/components/utils/useElection.tsx” to use pctx.getProxy() for the election info.
Frontend receives election public keys from at least ⅔ of the nodes.
Frontend reports/sends alert to the D-voting community when releasing there is a different public key.
The text was updated successfully, but these errors were encountered:
Scenario
When a user wants to cast a ballot, the frontend server will request the election public key from a blockchain node. And the ballot will be encrypted using the public key.
However, if the frontend requests the public key from a compromised blockchain node, the adversary can reply with a fake public key to the user. Then it can decrypt the ballot if the user uses the public key for the encryption.
Source
“web/frontend/src/pages/ballot/Show.tsx” function sendBallot
“pubKey” is derived from the function “web/frontend/src/components/utils/useElection.tsx” to use pctx.getProxy() for the election info.
Breaking Property
Confidentiality, Integrity
Risk
CVSS Score: 5.8/10
Mitigation
Frontend receives election public keys from at least ⅔ of the nodes.
Frontend reports/sends alert to the D-voting community when releasing there is a different public key.
The text was updated successfully, but these errors were encountered: