CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
CHANGED
Confidentiality Impact
LOW
Integrity Impact
LOW
Availability Impact
NONE
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
AI Score
Confidence
High
EPSS
Percentile
14.5%
Third-party blocks can be generated without transferring the whole token to the third-party authority. Instead, a ThirdPartyBlock
request can be sent, providing only the necessary info to generate a third-party block and to sign it:
A third-part block request forged by a malicious user can trick the third-party authority into generating datalog trusting the wrong keypair.
Consider the following example (nominal case)
A
emits the following token: check if thirdparty("b") trusting ${pubkeyB}
B
B
generates the following third-party block thirdparty("b"); check if thirdparty("c") trusting ${pubkeyC}
C
to be able to use the tokenNow, with a malicious user:
A
emits the following token: check if thirdparty("b") trusting ${pubkeyB}
thirdparty("c")
, signed with a keypair pubkeyD, privkeyD)
they generateThirdPartyBlockRequest
publicKeys
field and replace pubkeyD
with pubkeyC
B
generates the following third-party block thirdparty("b"); check if thirdparty("c") trusting ${pubkeyC}
thirdparty("b"); check if thirdparty("c") trusting ${pubkeyD}
C
.Tokens with third-party blocks containing trusted
annotations generated through a third party block request