<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://manicpop.org/gewiki/index.php?action=history&amp;feed=atom&amp;title=Classic_bug%3A_Team_maintenance_password_bypass</id>
	<title>Classic bug: Team maintenance password bypass - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://manicpop.org/gewiki/index.php?action=history&amp;feed=atom&amp;title=Classic_bug%3A_Team_maintenance_password_bypass"/>
	<link rel="alternate" type="text/html" href="https://manicpop.org/gewiki/index.php?title=Classic_bug:_Team_maintenance_password_bypass&amp;action=history"/>
	<updated>2026-10-20T15:22:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manicpop.org/gewiki/index.php?title=Classic_bug:_Team_maintenance_password_bypass&amp;diff=2037&amp;oldid=prev</id>
		<title>CodexBot: Document classic team-maintenance password bypass and 0.3.3 fix</title>
		<link rel="alternate" type="text/html" href="https://manicpop.org/gewiki/index.php?title=Classic_bug:_Team_maintenance_password_bypass&amp;diff=2037&amp;oldid=prev"/>
		<updated>2026-10-17T20:38:10Z</updated>

		<summary type="html">&lt;p&gt;Document classic team-maintenance password bypass and 0.3.3 fix&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Classic bug&lt;br /&gt;
|id=GE-BUG-056&lt;br /&gt;
|affected=Classic 3.2e and ge-next through 0.3.2&lt;br /&gt;
|status=Verified in source; corrected in ge-next 0.3.3&lt;br /&gt;
|fixed=ge-next 0.3.3 (16-bit and 32-bit)&lt;br /&gt;
|source=GECMDS.C: cmd_buy() and cmd_maint(); GEMAIN.C: fixplanetteam() in ge-next&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
A planet owner can set the special trade password &amp;lt;code&amp;gt;team&amp;lt;/code&amp;gt; to reserve purchases for members of the owner&amp;#039;s team. The [[Buy command|BUY]] routine checks the planet&amp;#039;s saved team code against the buyer&amp;#039;s code. Classic GE&amp;#039;s [[Maintenance command|MAINT]] routine does not make that comparison: it treats &amp;lt;code&amp;gt;team&amp;lt;/code&amp;gt; as an ordinary password. Any player who knows the literal word can pass the maintenance password check by entering &amp;lt;code&amp;gt;MAINT team&amp;lt;/code&amp;gt;, even if the planet refuses to sell that player goods. ge-next inherited this behavior through 0.3.2.&lt;br /&gt;
&lt;br /&gt;
== Reproduction ==&lt;br /&gt;
# A player on a team claims a planet with at least 25,000 men and sets its trade password to &amp;lt;code&amp;gt;team&amp;lt;/code&amp;gt;.&lt;br /&gt;
# A player outside that team orbits the planet with a damaged ship, enough cash, and no active combat restriction.&lt;br /&gt;
# The outsider is refused by &amp;lt;code&amp;gt;BUY&amp;lt;/code&amp;gt; but enters &amp;lt;code&amp;gt;MAINT team&amp;lt;/code&amp;gt;. In classic GE and ge-next through 0.3.2, maintenance begins despite the team restriction.&lt;br /&gt;
&lt;br /&gt;
The planet still needs a working maintenance facility, and the command&amp;#039;s ordinary payment and combat checks still apply. This bug bypasses the intended team-only access rule; it does not make maintenance free.&lt;br /&gt;
&lt;br /&gt;
== Cause ==&lt;br /&gt;
&amp;lt;code&amp;gt;cmd_buy()&amp;lt;/code&amp;gt; recognizes &amp;lt;code&amp;gt;team&amp;lt;/code&amp;gt; as a special password and compares &amp;lt;code&amp;gt;plptr-&amp;gt;teamcode&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;waruptr-&amp;gt;teamcode&amp;lt;/code&amp;gt;. The classic and pre-0.3.3 &amp;lt;code&amp;gt;cmd_maint()&amp;lt;/code&amp;gt; paths instead use only the generic literal password test: a supplied word matching &amp;lt;code&amp;gt;plptr-&amp;gt;password&amp;lt;/code&amp;gt; is accepted. The special value is not secret, so requiring the word &amp;lt;code&amp;gt;team&amp;lt;/code&amp;gt; cannot enforce team membership. This is separate from the stale-team-code and team-identity problems described in [[Classic bug: Reused deleted team identifiers]].&lt;br /&gt;
&lt;br /&gt;
== Correction in ge-next 0.3.3 ==&lt;br /&gt;
In both 16-bit and 32-bit ge-next, &amp;lt;code&amp;gt;cmd_maint()&amp;lt;/code&amp;gt; now calls &amp;lt;code&amp;gt;fixplanetteam()&amp;lt;/code&amp;gt; to validate an old team restriction, then handles a live &amp;lt;code&amp;gt;team&amp;lt;/code&amp;gt; password through a team-code comparison before considering ordinary passwords. A member of the planet&amp;#039;s team may request maintenance without entering &amp;lt;code&amp;gt;team&amp;lt;/code&amp;gt;; an outsider receives a team-access denial even if they supply that word. Other maintenance requirements and the handling of ordinary planet passwords are unchanged. ge-arena has a separate depot path with no planetary trade passwords and is unaffected.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Teams#Gameplay effects|Team gameplay effects]]&lt;br /&gt;
* [[Maintenance command]]&lt;br /&gt;
* [[Planet administration]]&lt;br /&gt;
* [[Classic bug: Reused deleted team identifiers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Classic bugs: Multiplayer state]]&lt;br /&gt;
[[Category:Classic bugs: Planets]]&lt;br /&gt;
&lt;br /&gt;
{{GE navigation}}&lt;/div&gt;</summary>
		<author><name>CodexBot</name></author>
	</entry>
</feed>