REDHAT-BUG-2517910: Medium severity swtpm vulnerability

Published Aug 18, 2026
·
Updated

A flaw was found in swtpm. The SWTPMNVRAMCheckHeader() function in src/swtpm/swtpmnvstore.c validates the caller-supplied buffer length against sizeof(bh), where bh is a blobheader pointer. Because sizeof(bh) evaluates to the pointer size (8 bytes on 64-bit, 4 on 32-bit) rather than the struct size (10 bytes for the packed blobheader), an undersized buffer passes the entry guard. The subsequent access to bh->totlen at offset 6 reads 4 bytes, overreading the allocation by 2 bytes on 64-bit systems (6 bytes on 32-bit). On 64-bit systems with glibc, the overread typically hits allocator padding and the function returns an error without crashing. On 32-bit systems or with non-glibc allocators, daemon termination is possible, causing denial of service to the associated VM. In both cases, the out-of-bounds totlen value is logged, leaking a small amount of adjacent heap data. The control channel attack path requires no encryption keys. The fix is to change sizeof(bh) to sizeof(bh).

Affected Software

1 affected component
swtpm

Event History

Aug 18, 2026
Data Sourced
via Red Hat·02:47 PM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What access does an attacker need to trigger this issue?

An attacker needs access to the SWTPM control channel and can use the affected path without encryption keys. The supplied data must reach SWTPM_NVRAM_CheckHeader() with an undersized buffer.

2

Which deployments face the greatest denial-of-service risk?

32-bit systems and systems using non-glibc allocators may terminate the swtpm daemon when the out-of-bounds read occurs, causing denial of service to the associated VM. On 64-bit systems with glibc, the overread typically lands in allocator padding and the function usually returns an error rather than crashing.

3

Is information disclosure also possible?

Yes. The out-of-bounds totlen value is logged, which can disclose a small amount of adjacent heap data. This can occur even where the daemon does not crash.

4

What change fixes the vulnerable length validation?

The fix changes the validation from sizeof(bh), which measures the blobheader pointer, to sizeof(*bh), which measures the packed blobheader structure.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203