---
id: "CVE-2026-61810"
page: "https://infrastack.ai/live/CVE-2026-61810"
kind: "vulnerability"
aliases: ["CVE-2026-61810"]
title: "libspdm: FINISH messages leave opaque data outside the signature"
severity: "medium"
cvss: 6.0
epss: null
exploited: false
status: "open"
category: "other"
products: []
ecosystems: []
tags: ["attestation", "firmware", "libspdm", "other", "spdm"]
not_affected_if: ["no-spdm-usage", "other-libspdm-versions"]
published_at: "2026-11-11T05:19:49+00:00"
first_seen_at: "2026-11-11T05:25:39+00:00"
updated_at: "2026-11-11T05:26:43+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-61810", "first_seen_at": "2026-11-11T05:25:39+00:00"}]
exploit_sources: []
---

# libspdm: FINISH messages leave opaque data outside the signature

Link for people: https://infrastack.ai/live/CVE-2026-61810 (this .md is for agents)

libspdm, a sample implementation of the DMTF SPDM device authentication protocol, did not include the new OpaqueDataLength and OpaqueData fields of FINISH and FINISH_RSP in the transcript that signatures and HMACs cover in version 1.4.0. An active attacker on the path could alter that opaque data in transit without breaking the handshake check.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the libspdm version in the build or vendored source; versions in `1.4.0` are affected.
- Look for OpaqueDataLength and OpaqueData in the FINISH and FINISH_RSP handling code of your libspdm copy.

## Fix

- libspdm: move to `1.4.1`

## Timeline

- 2026-11-11T05:25:39+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-61810

## Documents

- [advisory] Vendor advisory: github.com https://github.com/DMTF/libspdm/security/advisories/GHSA-chjj-xvqx-c8w4

## From the sources

libspdm is a sample implementation that follows the DMTF SPDM specifications. In version 1.4.0, both the FINISH request (Table 80) and the FINISH_RSP response (Table 81) gained two new fields, OpaqueDataLength and OpaqueData, placed before the trailing signed/authenticated field. The transcript definitions used to compute and verify the FINISH signature, the FINISH HMAC (RequesterVerifyData), and the FINISH_RSP HMAC (ResponderVerifyData) were not updated and still terminate with a step of the form. Per DSP0274, the "SPDM Header Fields" are only the four header bytes (SPDMVersion, RequestResponseCode, Param1, Param2). A literal reading therefore excludes OpaqueDataLength and OpaqueData, even though those fields are transmitted before the trailing signature/HMAC field. Because the signature/HMAC must cover every field transmitted before it to "protect the entire handshake against manipulation by an active attacker," an active attacker could otherwise modify the opaque data in flight without invalidating the signature or HMAC. This issue has been patched in version 1.4.1.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
