Skip to content

The Attestation Results Token can be intercepted and then arbitrarily modified without being detected

High
fitzthum published GHSA-7jc6-j236-vvjw Nov 8, 2024

Package

KBS, AS

Affected versions

<= 0.8.0

Patched versions

0.8.2

Description

Summary

The ART (Attestation Results Token) token, generated by AS, could be manipulated by MITM attacker, but the verifier (CoCo Verification Demander like KBS) could still verify it successfully.

Details

In the payload of ART token, the ‘jwk’ could be replaced by attacker with his own pub key. Then attacker can use his own corresponding private key to sign the crafted ART token. Based on current code implementation (v0.8.0), such replacement and modification can not be detected.

See more details as shown with pictures in last section below.

PoC

No PoC exploit at this moment

Impact

It can impact the integrity of ART token, and hence all the contents of its payload (see blow), which could be modified without detection.

  "iss": $issuer_name,
  "jwk": $public_key,
  "exp": $expire_timestamp,
  "nbf": $notbefore_timestamp,
  "tee-pubkey": $pubkey,
  "tcb-status": $parsed_evidence,
  "evaluation-report": $report

If "tee-pubkey" might be used to encrypt other secrets or wrapper other keys (e.g. to setup a secure channel in between TEE/enclave and reply party, then as a consequence, the confidentiality would also be compromised as well.

There may have other consequences but just depending on how to use those fields of payload above after successful authentication of ART token.

Notes

  • The initial CVSS(3.1) scoring has been done, we can discuss it further if an adjustment is needed.

Further details

See the attached slides (Github doesn't support uploading pptx files, so I converted the slides to SVG files below for each page).
Slide1
Slide2
Slide3
Slide4
Slide5

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

CVE ID

CVE-2024-51997

Weaknesses

Credits