Epic's EAC2 v2 seems fairly easily bypassable

Lobsters Hottest News

Summary

一篇技术博客分析指出,Epic Games 即将推出的 Linux 版 Easy Anti-Cheat v2 所依赖的 eBPF 与 TPM 远程证明机制似乎容易被绕过,例如通过重置主板 TPM 或使用 USB 转 SPI 桥接外接 TPM 来伪造可信启动测量值。

<p><a href="https://lobste.rs/s/1iin5o/epic_s_eac2_v2_seems_fairly_easily">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 10/16/26, 12:27 AM

# Epic's EAC2 v2 seems fairly easily bypassable Source: [https://codon.org.uk/~mjg59/blog/p/epics-eac2-v2-seems-fairly-easily-bypassable/](https://codon.org.uk/~mjg59/blog/p/epics-eac2-v2-seems-fairly-easily-bypassable/) Epic just[announced](https://onlineservices.epicgames.com/news/introducing-easy-anti-cheat-linux-v2)the upcoming version 2 of their Linux implementation of Easy Anti\-Cheat\. It’s based on using the[Linux eBPF security module](https://docs.kernel.org/bpf/prog_lsm.html)to monitor what’s happening, and then a bunch of extra infrastructure to make sure this can’t be bypassed\. The core part of this is requiring secure boot be enabled \(ensuring that modified kernels can’t be used\), using measured boot to verify that secure boot is enabled and which keys are used \(to prevent you from just signing your own modified kernel\), and then doing remote attestation, a mechanism where the TPM generates a signed copy of the boot measurements and passes that off to a server which verifies it came from a real TPM, verifies that you have secure boot enabled and are using the right keys, and presumably then allows you into the game\. This is all fine as long as you can prove that the measurements provided are real, and that’s actually a lot harder than you might think\. First, we can simply make up our own quote signed with our own key and say that it came from a TPM\. This is avoided by every TPM having an Endorsement Key \(or EK\) and an associated certificate, with that certificate being signed by the TPM vendor\. If you have a list of all the legitimate TPM vendors and their CA keys, you can verify that the measurements came from a real TPM\. Easy enough\. So we need to get the measurements from a real TPM, and the one on our motherboard contains the measurements that were generated by the firmware and bootloader, and we can’t reset those at runtime without resetting the TPM, which… oh huh there’s actually nothing stopping us from doing that at runtime, as long as we have access to the hardware\. Many desktop boards have the TPM on a small plugin module with a standard pinout that includes a reset pin\. Simply short that to ground briefly and the TPM is back in its initial state, and userland can write whatever measurements it wants to it\. Boot a modified kernel which lies to the eBPF code? As long as you replay the expected log values from a boot with secure boot on and a trusted kernel, the TPM will still happily provide a legitimate set of measurements that’ll satisfy the checker\. What if the TPM is less accessible, either because it’s mounted directly to the motherboard or it’s inside the CPU or chipset? That’s going to be trickier\. But here’s the thing\. The quote needs to come from*a*TPM, but not necessarily the TPM on your motherboard\. TPMs these days are usually connected via the[Serial Peripheral Interface](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface), usually referred to as SPI\. Microchip make a[USB to SPI bridge](https://www.microchip.com/en-us/product/mcp2210), and there’s a[Linux driver](https://github.com/daniel-santos/mcp2210-linux)\. Wire one of those up with an appropriate header and you can plug in an easily available TPM module intended for plugging into a motherboard, and now we tell the kernel to ignore the motherboard TPM and make /dev/tpmrm0 point at the USB one and program it with a set of trusted measurements and once again everything is going to look just fine \(yes obviously the eBPF code can look for this, but we’re running a modified kernel so we can just lie to the eBPF code\)\. Remote attestation on PCs just doesn’t work that well in environments where you can’t associate a specific TPM with a specific system, which is basically everywhere except enterprises\. But maybe that doesn’t matter and cheaters wouldn’t be willing to spend the $20 or so it’d take to produce one of these things? That would seem somewhat surprising, but it’s not impossible\. And obviously any server\-side cheat detection that triggers could then block that specific TPM, meaning they’d need to go and get another TPM, and maybe that ends up being enough to discourage people from bothering\. From a practical level, this may be sufficient\. But at a technical level? It’s not great\.

Similar Articles

Awesome Gaming on Linux Without Cheating

Lobsters Hottest

Epic Games announces Easy Anti-Cheat Linux v2, rebuilding its Linux anti-cheat to match Windows-level protection using signed kernels, signed kernel modules, and secure boot with attestation, with a Fortnite pilot planned before broader rollout to other developers.

Epic is bringing Fortnite to Linux

The Verge

Epic is releasing an Epic Games Launcher preview for Linux and rebuilding Easy Anti-Cheat as 'EAC Linux v2' in order to eventually bring Fortnite to Linux, working with distro maintainers on security requirements.

Epic&#8217;s new games launcher is ‘vibe coded’

The Verge

Epic Games 发布新版 PC 游戏启动器预览版,宣称其代码由 AI “vibe coded”完成,速度更快并首次支持 Linux,同时透露公司正全面转向 AI 加速开发。Epic 还计划通过该应用将《堡垒之夜》带到 Linux 平台。