CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2023-43634

Trust Issues: Bypassing EVE OS Measured Boot via PCR Amnesia

Alon Barad
Alon Barad
Software Engineer

Feb 4, 2026·6 min read·24 visits

Executive Summary (TL;DR)

EVE OS developers moved the configuration partition measurement to TPM PCR 14 but forgot to tell the TPM to check it. Attackers can modify system configs (like SSH keys) without preventing the device from unlocking its encrypted vault.

A critical oversight in the EVE OS Trusted Platform Module (TPM) implementation allowed attackers to bypass Measured Boot protections. By failing to include Platform Configuration Register (PCR) 14 in the sealing policy, the system permitted unauthorized modifications to the configuration partition without locking the encryption keys.

The Hook: The Digital Bouncer

Imagine a high-security vault that requires a retina scan, a fingerprint, and a voice print to open. It’s impenetrable. Now imagine the security guard decides to stop checking the voice print because he's tired, but he doesn't tell anyone. That is effectively what happened inside EVE OS.

EVE OS relies on a hardware root of trust—the Trusted Platform Module (TPM)—to implement 'Measured Boot'. The idea is simple: as the device boots, it calculates cryptographic hashes of every component (BIOS, bootloader, kernel, config) and stores them in Platform Configuration Registers (PCRs).

The device's 'vault' key (which decrypts your data) is 'sealed' against these PCRs. The TPM is essentially told: 'Only release this key if PCR 0 through PCR 13 look exactly like they did when we set this up.' If a hacker modifies the kernel, the hash changes, the PCR values mismatch, and the TPM tells the hacker to get lost. The vault stays locked.

But in CVE-2023-43634, we found out that EVE OS was strictly checking the front door while leaving the garage side-door wide open. They were measuring a critical component, but they weren't actually checking the measurement.

The Flaw: The PCR Shuffle

The root cause of this vulnerability is a classic case of 'I thought you handled that.' In the world of TPMs, different PCR indices are reserved for different things. Historically, EVE OS measured its configuration partition into PCR 13. This partition holds the keys to the kingdom—API endpoints, authorized SSH keys, and system settings.

At some point, a developer decided to clean house. In commit 56e5897, the measurement of the configuration partition was moved from PCR 13 to PCR 14. This makes sense organizationally. It keeps things tidy.

However, there are two steps to this dance: 1) Measure the data into the register, and 2) Tell the TPM to validate that register before unsealing the keys. They did step 1 perfectly. They completely forgot step 2.

The DiskKeySealingPCRs list—the policy that dictates what the TPM checks—was never updated to include PCR 14. So, every time the device booted, it dutifully measured the config into PCR 14, and then the TPM dutifully ignored it, checking only 0 through 13. You could rewrite the entire configuration partition, changing the value of PCR 14 entirely, and the TPM would still happily hand over the encryption keys.

The Code: The Smoking Gun

Let's look at the code, because in Go, the mistake is almost painfully obvious once you know where to look. This is located in pkg/pillar/evetpm/tpm.go.

Here is the vulnerable code configuration:

// Vulnerable Code
// DiskKeySealingPCRs represents PCRs that we use for sealing
DiskKeySealingPCRs = tpm2.PCRSelection{
    Hash: tpm2.AlgSHA1, 
    PCRs: []int{0, 1, 2, 3, 4, 6, 7, 8, 9, 13}
}

Do you see 14 in that list? Neither do I. Also, notice the use of AlgSHA1. In 2023. That's a separate sin, but it adds flavor to the failure.

Here is the fix provided in the patch:

// Patched Code
// DiskKeySealingPCRs represents PCRs that we use for sealing
DiskKeySealingPCRs = tpm2.PCRSelection{
    Hash: tpm2.AlgSHA256, // Upgraded to SHA256 (Nice)
    PCRs: []int{0, 1, 2, 3, 4, 6, 7, 8, 9, 13, 14} // PCR 14 added
}

The fix was literally two characters (adding 14) and a much-needed algorithm upgrade. Without that 14, the cryptographic chain of trust was broken at the configuration layer.

The Exploit: Ghost in the Config

How does a researcher (or an attacker) actually weaponize this? EVE OS is designed for edge computing—boxes sitting in factories, wind turbines, or retail stores. Physical access is often trivial.

The Attack Chain:

  1. Access: The attacker physically accesses the device (Evil Maid scenario) or boots from a live USB.
  2. Mount: They mount the storage medium. The config partition is usually read-only or integrity-protected, but since we are offline, we can modify the bits on the disk directly.
  3. Inject: The attacker modifies the authorized_keys file in the configuration partition to include their own public SSH key. Or, they change the controller URL to point to a malicious command-and-control server.
  4. Boot: The attacker reboots the device.

During boot, the bootloader hashes the modified config. The hash is different. PCR 14 changes to a new, 'tainted' value.

The TPM looks at the policy. "Does PCR 0 match? Yes. PCR 1? Yes... PCR 13? Yes." It stops there. It never looks at the tainted PCR 14. The vault key unlocks, the system boots, and the attacker logs in via SSH with root privileges using the key they injected.

The Impact: Broken Chains

The severity here is classified as High (CVSS 8.8) for a reason. EVE OS creates a promise of security: "If the device is tampered with, it won't boot (or at least won't decrypt secrets)."

This vulnerability completely negates that promise for the configuration layer. This isn't just about reading data; it's about persistence. An attacker can backdoor a device, and the device itself—specifically the TPM which is supposed to prevent this—will vouch for the system's integrity.

Since this affects the sealing of the vault, an attacker gets access to:

  • Credentials: WiFi passwords, API keys, and service secrets stored in the vault.
  • Workloads: They can inspect or modify the Docker containers/VMs running on the edge node.
  • Network: The device can be used as a pivot point into the deeper OT (Operational Technology) network.

The Fix: Better Late Than Never

The remediation is straightforward but requires action. The patch d9383a7ee4e1c39f5c8c6d4a63cb2ebd00695e8a fixes the issue by explicitly adding PCR 14 to the sealing list.

But simply applying the update isn't enough. Because the sealing policy is baked into the way the data is encrypted on disk, existing data is sealed with the old policy (ignoring PCR 14).

To fully remediate:

  1. Update: Flash the device to EVE OS version 8.6.0, 9.5.0, or newer.
  2. Reseal: The vault keys must be unsealed (using the old policy) and then re-sealed using the new policy (SHA256 + PCR 14). In many edge scenarios, this might require a reprovisioning of the device to ensure a clean state.

This is a harsh reminder that cryptography is only as good as its implementation. You can have the strongest algorithms in the world, but if you forget to check the register, you're just doing fancy math for no reason.

Official Patches

LF-EdgeCommit fixing the sealing policy

Fix Analysis (1)

Technical Appendix

CVSS Score
8.8/ 10
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
EPSS Probability
0.03%
Top 90% most exploited

Affected Systems

EVE OS < 8.6.0EVE OS 9.0.0 < 9.5.0

Affected Versions Detail

Product
Affected Versions
Fixed Version
EVE OS
LF-Edge
< 8.6.08.6.0
EVE OS
LF-Edge
>= 9.0.0 < 9.5.09.5.0
AttributeDetail
CVE IDCVE-2023-43634
CVSS8.8 (High)
CWECWE-922 (Insecure Storage)
VectorCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Attack VectorLocal (Physical/Storage)
Hash UpgradeSHA1 -> SHA256

MITRE ATT&CK Mapping

T1542.001Pre-OS Boot: System Firmware
Persistence
T1200Hardware Additions
Initial Access
T1059Command and Scripting Interpreter
Execution
CWE-922
Insecure Storage of Sensitive Information

The product stores sensitive information without checking the integrity of the storage container or the configuration affecting access control.

Vulnerability Timeline

CVE Published
2023-09-21
Fix Commit Merged
2023-09-20
Last Modified Date
2024-11-21

References & Sources

  • [1]ASRG Security Advisory
  • [2]NVD Detail

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-54348
7.2

CVE-2026-54348: Second-Order SQL Injection in Froxlor API Layer

An authenticated administrator with privileges to manage admin accounts (such as change_serversettings) can execute arbitrary SQL commands via a second-order SQL injection vulnerability. The flaw resides in Froxlor's administrative API endpoints, specifically during the handling of IP address mapping parameters which are stored as serialized arrays and later interpolated without sanitization into active database queries. This vulnerability allows high-privileged administrative attackers to compromise the database. By injecting a payload into administrative profile metadata, an attacker can extract sensitive credentials, manipulate backend settings, or potentially disrupt database integrity. The vulnerability affects all versions of Froxlor prior to 2.3.8.

Amit Schendel
Amit Schendel
0 views•6 min read
•about 2 hours ago•CVE-2026-54543
5.4

CVE-2026-54543: DNS Resource Record (RR) Injection in Froxlor DomainZones API

CVE-2026-54543 is a DNS Resource Record (RR) Injection vulnerability in Froxlor, an open-source server administration control panel. Prior to version 2.3.8, the DomainZones.add API command failed to perform strict sanitization and validation on the user-controlled record (label) and type parameters before serializing them into BIND-compatible zone files. An authenticated customer with DNS zone management permissions can inject control characters, breaking out of the original record context to define unauthorized resource records within managed zones.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 2 hours ago•CVE-2026-42533
9.2

CVE-2026-42533: NGINX Map Directive and Regex Matching Pre-Auth Heap Buffer Overflow & Info Leak

CVE-2026-42533 is a critical security vulnerability discovered in NGINX Open Source, NGINX Plus, NGINX Ingress Controller, and related products, referred to as the 'Two-Pass Capture-Clobbering' bug. The flaw is situated within NGINX's internal evaluation engine when handling complex variables, exposing a heap-based buffer overflow and information leak when a configuration chains regular expression-based map directives with numbered capture groups. An unauthenticated remote attacker can exploit this weakness by transmitting crafted HTTP requests to trigger remote code execution or defeat ASLR.

Alon Barad
Alon Barad
5 views•7 min read
•about 3 hours ago•CVE-2026-55593
6.5

CVE-2026-55593: Persistent Administrative Hijacking via Cross-Site Request Forgery in Froxlor Ajax Router

Froxlor prior to version 2.3.8 contains a high-severity architectural flaw where the standalone lib/ajax.php entry point bypasses the centralized request validation in lib/init.php. Unauthenticated remote attackers can leverage Cross-Site Request Forgery (CSRF) to induce authenticated administrators to submit forged requests that modify API key whitelists and expiration dates, potentially yielding persistent, out-of-band administrative control.

Amit Schendel
Amit Schendel
2 views•8 min read
•about 4 hours ago•CVE-2026-62988
9.0

CVE-2026-62988: Multi-Factor Authentication and Credential Bypass in Froxlor API

An insecure data retrieval flaw in the Froxlor server administration panel API allows authenticated remote attackers to retrieve unredacted bcrypt password hashes and Base32-encoded Time-Based One-Time Password (TOTP) seeds. Affected endpoints include several 'get' and 'listing' handlers for customers, administrators, and FTP accounts. Utilizing these leaked parameters, attackers can crack the password hashes offline and concurrently generate valid second-factor authentication codes to completely bypass access controls.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 5 hours ago•CVE-2026-70666
7.4

CVE-2026-70666: Server-Side Request Forgery in Netflix Lemur ACME Authority Management

CVE-2026-70666 is a critical Server-Side Request Forgery (SSRF) vulnerability in Netflix Lemur's ACME certificate management integration. Prior to version 1.9.3, the system allowed authority-role users to bypass initial ACME URL allowlist validations when updating an existing authority. Additionally, the underlying ACME network client blindly parsed and connected to dynamic endpoint URLs supplied in JSON responses from the configured ACME directory, allowing attackers to route arbitrary JWS-signed requests to internal services or cloud metadata endpoints.

Alon Barad
Alon Barad
4 views•5 min read