《将军掘地虫:命令与征服中的蠕虫与远程代码执行》
General Graboids: Worms and Remote Code Execution in Command and Conquer

原始链接: https://www.atredis.com/blog/2026/1/26/generals

## 命令与征服:将军漏洞 研究人员布莱恩·亚历山大和乔丹·怀特黑德在EA于2025年初发布源代码后,调查了经典RTS游戏《命令与征服:将军》的安全漏洞。他们的研究成果在Districtcon“垃圾场”EoL pwnathon上展示,重点关注了游戏的网络架构,尽管该游戏已停止维护。 团队发现了游戏网络协议中的多个漏洞,具体位于8086端口(大厅)和8088端口(游戏)。令人惊讶的是,无需模糊测试——漏洞通过代码审查和使用现有游戏客户端的动态工具即可显而易见。 为了展示潜在影响,他们开发了一种蠕虫,并在Github上发布了所有源代码和概念验证。尽管EA不再支持该游戏,但社区已经发布了解决这些问题的补丁,展示了C&C社区持续的兴趣和奉献精神。

对经典即时战略游戏《命令与征服》的安全分析发现了漏洞,包括蠕虫和潜在的远程代码执行。研究人员speckx在Hacker News上详细说明了这些发现,并指出他们已于2025年负责任地向EA Games披露了这些问题,但收到了确认,修复不在他们的支持范围内。 讨论强调了保护和支持数十年历史的软件所面临的挑战。虽然EA继续销售这款游戏,但一些评论员质疑提供已知安全漏洞软件的道德性,而另一些人则认为即使存在风险,也应该保留对原始游戏的访问权限,并赞赏EA发布源代码。 值得注意的是,一个独立项目已经成功地使用类似的漏洞技术在《过山车大亨》中运行了《毁灭战士》。尽管《命令与征服》已经很老,但仍然有一个忠实的社区在玩它,甚至每年还会举办一个奖金为25,000美元的世界大赛,这表明人们对这款游戏仍然很感兴趣。
相关文章

原文

[this work was conducted collaboratively by Bryan Alexander and Jordan Whitehead]

This post details several vulnerabilities discovered in the online game Command & Conquer: Generals. We recently presented some of this work at an information security conference and this post contains technical details about the game’s network architecture, its exposed attack surface, discovered vulnerabilities, and full details of a worm we developed to demonstrate impact.

Full source code, including PoCs, can be found in our public Github repository here. Though the game is considered end-of-life by Electronic Arts, publicly available community patches are available addressing these issues; for more information see this project.

Research introduction

In early 2025, EA Games released the source code for Command & Conquer: Generals (C&C:G), the final installment in the real-time strategy (RTS) series popular in the late 1990’s and early 2000’s. Included in this source release was Zero Hour, the first and only expansion released in 2003, the same year as Generals. The game was released with both single and multiplayer gameplay, with multiplayer supporting LAN and online lobbies via the GameSpy service. Gamespy eventually went defunct in 2014 and along with it the online C&C:G servers.

Junkyard is an end-of-life pwnathon where researchers bring zero-day vulnerabilities to end-of-life (EoL) products, be it hardware, software, firmware, or a combination of the three. Points are given based on impact, presentation engagement and quality, and overall silliness. The event is held during Districtcon, a relatively new information security conference held yearly in Washington DC. We loved the idea of the event and were eager to identify potential targets to contribute. C&C:G fit the bill as both interesting and EoL’d.  

When we first started the project we were kicking around ideas for fuzzing the network layer, but once we spent a little bit of time with the code, we found there really was no need. 

Target overview

The source code includes all core components including the engine, networking stack, and various clients, but does not include models and other proprietary dependencies (such as third-party licensed tooling). This means the game cannot be built straight from the repository as is. Instead of attempting to build the game, we instead picked up a few licenses from Steam to provide dynamic instrumentation alongside our static code review. 

When a client starts a game lobby, UDP port 8086 is opened up. This is the lobby port and exclusively processes meta-game commands and requests, such as player join, leave, chat, and more. For game packets used to synchronize state, trigger actions, and other combat activities, a separate port is opened once the game begins on port 8088.

联系我们 contact @ memedata.com