WARNING! Civ4 Ships With Critical Security Vulnerabilities!

Status
Not open for further replies.
CivIndeed said:
(If only reading were pervasive..goes into repeat mode)
Additionally, again, i have a moral and ethical obligation to inform the affected parties, especially when the developer/publisher has taken no steps to acknowledge or rectify the situation, and when there are solutions available to the affected parties that they can apply themselves to immediately address the security vulnerabilities.

First a positive message. Thank you for finding this and reporting it to the proper channels. That would have been enough.

This thread tells the hypothetical hackers how to attack the game. The right way to handle security problems is to allow "the authorities" to come up with the fix, and then let them announce the vulnerability and the fix.

[on soapbox]
Since you're so fond of talking down to others, I'll gently give you a taste. This is not intended to be insulting, just a statement of facts.

I'm the RL equivalent of an "Elite software engineer" who's almost achieved "Great Leader" status. I've been on the internet since before it became "inter". I was on SciNet, UUNet, and DARPANet (not their official names but you get the point) before they merged. I've been a systems security officer for the US government (can't tell you where or I'd have to kill you). And you don't yell about vulnerabilities in a public place.
[off soapbox]
 
) Locate python24.dll in the c:\program files\firaxis games\sid meier's civilization 4 folder, and rename it python24.dll.old.
2) Download python version 2.4.2 from: http://www.python.org/ftp/python/2.4.2/python-2.4.2.msi
3) Install Python 2.4.2, locate the python24.dll file in the c:\windows\system32 folder, and copy it to the c:\program files\firaxis games\sid meier's civilization 4 folder.
4) Uninstall Python 2.4.2 (this step is optional, unless you want to keep the entire Python programming package installed)


i dont find the python24.dll in c:\windows\system32 folder

i found it in c:\python24 folderis it ok if i copy and past it from there into civ4 folder?
 
CivIndeed said:
Thats correct, my mistake, thanks for catching that. I got into "automatic copy paste" mode from my zlib directions in order to save typing, and didnt catch myself on that.

on my system it is in c:\python24 folder not in windows/system32
 
alexti2 said:
It is probably pointless to post anything constructive here, but I'll try anyway.

We'll see.

Using library that has known vulnerability does not necessary make your product vulnerable.

At the very least it makes you irresponsible and incompetent, especially when a new fixed library is easily available.

What happens when you install such an outdated insecure library in a common file access folder/path?

Even assuming your clever application duplicated the libraries code but yet somehow fixed it to prevent your application from being affected, it would still be available for other applications to use.

Granted, Civ 4 doesnt install its third party DLLs in any sort of common folder/path, but since we are talking in general terms, it has to be considered.

Why use a version of a library that has known vulnerabilities, when newer less vulnerable more bug fixed versions are available?

(aside from irresponsible incompetence)

Commonly, vulnerability arises from some memory overrun in some function when it's provided with particular input.

<insert explanation of what an unchecked buffer is, then explain a buffer overrun attack exploit>

There are lots of "common vulnerability" types. Unchecked (or improperly checked) buffers are one type.

But yes, they are "common". One of the two zlib flaws is in fact as such.

Then the application that never calls this function (directly or indirectly) never risks this overrun and doesn't have this particular vulnerability.

Its a good thing no application ever needs to inflate what it deflates. Fantastic point!

I mean, if the flaws were in the inflate() and inflateBack() functions, that would be Really Bad, because of course, deflated data, needs to be inflated, what with that funky "compression" and "decompression" process stuff.

The application may even use this function and as long as it ensures that the set of parameters that would cause memory overrun can't reach that function.

Well, how would it know that? Does the application have mystical knowledge of all the flaws and shortcomings of the third party code library?

Somehow it has a better idea of how to process the data for the library, than the library itself eh?

If thats the case, why use the external third party code library at all? Why not just write "their" own code, since obviously "they" have a much better idea of how to process the data?

Of course, that defeats the purpose of using an external third party code library. And of course, Civ 4 uses an external third party code library - an outdated insecure one.

This can be either due to the progammer being aware of vulnerability and adding safeguard or due to the only limited inputs arising from within the application (not from external sources) being fed to this functions.

So, instead of just getting the updated fixed secured DLL (a few minutes max?), you use the old outdated insecure library, and then spend who knows how long coding extra checking code into your app using detailed knowledge only obtainable through significant research time spent figuring out the nature of the flaws.

Which means you'd have to know about the flaws, the flawed version, but still include it anyway.

Clever.

Well, if this is the case, then i'm sure we'll never see an updated ZLIB1.DLL or PYTHON24.DLL from Firaxis.

If in fact the patch does contain an updated version of either, thats primae facie evidence that in fact, they had no such code, and of course, that they acknowledge Civ 4 to be insecure as shipped.

Of course, i've already heard from one source that the patch contains ZLIB1.DLL version 1.2.3 - the latest secured version.

However, they neglected to update PYTHON24.DLL as well. Utter incompetence.

Its moot now - Civ 4 shipped insecure, and the release of the patch with ZLIB1.DLL implicitly acknowledges this.

Because of these reasons it's impossible to say if Civ4 has any of those vulnerabilities or not without detailed investigation.

Its not impossible - its utterly possible and factual. Civ 4 ships with outdated insecure code libraries. Those two libraries contain utterly insecure vulnerable code. If you want to argue they cant be exploited, thats another argument (see your previous attempt). But the insecure vulnerable code is most definitely there.

It didnt take much investigation by myself to see they were using outdated third party code modules. Or that two of them contain a copy each of the two zlib vulnerabilites (ZLIB1.DLL and PYTHON24.DLL).

Its vulnerable. It shipped with vulnerable libraries, and the first patch specifically contains at least 1 secured library.

It would be nice to get a statement from Firaxis on this issue.

Indeed. You would think it would be a priority for them. Ah, but why issue a statement when you can just release a half-ass patch that only secures one of the vulnerable libraries?

You have to love incompetence. Especially when it puts you and your computing experience at risk.

Having the source code it shouldn't be too hard to find out if their appllication is vulnerable or not.

Its vulnerable. We already know. The patch includes ZLIB1.DLL version 1.2.3.

Still, as long as one doesn't allow Civ4 to access the internet and doesn't load any mods or savegames from untrusted sources, he will be save from exploits.

Perhaps. Though, its probably more reasonable just to update the DLLs as recommended - you get the advantage of the secured libraries, not to mention the other non-security related bug fixes, and the ability to more fully use the game without "worry".
 
Clown2TheLeft said:
Everyone refrigginglax. Please! C'mon, folks...

Whether someone is comitting usage errors due to lack of familiarity with the language, or whether Standard English usage places punctuation INSIDE the quotes rather than out is rather secondary to the topic.

It's not CivIndeed's attitude which interests me (then again, I'm not looking to be offended, either). It is rather these security issues.

So.

CivIndeed: can you please _briefly_ explain to me, in Human, what I am at risk of due to this code, and what can be done to prevent/fix this. I've tried reading the thread, but keep getting distracted by the ongoing pissing match.


Later!

--The Clown to the Left.

Risk:
1) DoS (Denial of Service) - Civ 4 could crash/terminate
2) Arbitrary Code Execution - (loss of control of your PC)

Fix:
Update Files As Recommended.
 
DaveShack said:
First a positive message. Thank you for finding this and reporting it to the proper channels. That would have been enough.

It would have been, except that 1) 2K and Firaxis didnt respond back appropriately, 2) the flaws got significant media exposure several months ago, and 3) there were/are easy user-installable fixes available.

This thread tells the hypothetical hackers how to attack the game.

No, it doesnt. It simply provides general information about vulnerable third party code libraries.

Nowhere in this thread is information provided about how specifically to form/craft the "bad data" for zlib's inflate() and inflateBack() functions.

Nor are they any links to exploit code/utils.

Reading works. Try it.

The right way to handle security problems is to allow "the authorities" to come up with the fix, and then let them announce the vulnerability and the fix.

The "authorities" shipped their game with outdated insecure third party libraries, then didnt respond to any communications that were made to them about the issue, either privately or publicly.

Furthermore, fixes for the problem libraries were already publicly available buy the third party code authors before they shipped the game, therefore allowing users to fix the problems themselves (with some work) without waiting for the incompetent irresponsible developer to issue a patch (with the updated libraries).

Saying nothing while knowing that every Civ 4 install was vulnerable, even though fixes are/were available, is the height of irresponsibility and absurdity.

Advocating the continued insecurity of Civ 4 installs even though fixes are available is about as asinine and ludicrous as it gets.

Not only was the public informed about the security problems, they were also immediately provided with a user-doable solution to the problem.

[on soapbox]
Since you're so fond of talking down to others, I'll gently give you a taste. This is not intended to be insulting, just a statement of facts.

I'm sure your facts will be substantiated and sourced, of course.

I'm the RL equivalent of an "Elite software engineer" who's almost achieved "Great Leader" status.

Yeah, and im a gay martian. Just dont ask me to substantiate the claim. I only make them.

I've been on the internet since before it became "inter".

I've been on MarsNET, and then StellarSytemNET, and then SpiralArmNET, and then GalactiNET and finally UniversiNET, all before you even understood how lame credentialization without substantiation is as the laughable appeal to cyber authority fallacy it is.

I was on SciNet, UUNet, and DARPANet (not their official names but you get the point) before they merged.

Your microprocessor technology and network processing equipment technology are the products of the Technology Infusion Policies instituted by the Unified Alien Cabal.

In fact, "hamanity" as such owes its entire current existence to genetic manipulation first implemented by the Greater Martian Hegemony.

I've been a systems security officer for the US government (can't tell you where or I'd have to kill you).

I've been alive for 573 of your "Terran" "years".

I have a Top Secret + Security Clearance (but remember, dont ask me to substantiate that claim). You can tell me.

And you don't yell about vulnerabilities in a public place.
[off soapbox]

"Yelling" about vulnerabilities is precisely what is done on a daily basis at many industry security and media sites. You might want to go tell them what they are doing wrong.

And often, such "yelling" isnt even accompanied by any easy publicly accessible solution (newly discovered/reported vulnerabilities often dont yet have patches available).

Next.
 
CIV4 Isabella rocks dude.

Next.
 
First, big thanks to CivIndeed. The purpose with the thread was to help people.

Second, it´s really hard to have a personality that stretches through the internet to the user on the other end. Since CivIndeed has accomplished this in a way that actually made me Lol (yes it DOES happen and it IS ok to use the term when it actually HAPPENS), he must be a Martian or a goverment comedian. Now stop fussing and see the purpose behind the post.

:D
 
Are there actually any proof of concept examples anywhere? You can hardly call it a critical flaw if there aren't any actual exploits!
 
Prince James I said:
Are there actually any proof of concept examples anywhere? You can hardly call it a critical flaw if there aren't any actual exploits!

But there COULD be an exploit. See, that's enough to call them "critical vulnerabilities".
 
alexti2 said:
It is probably pointless to post anything constructive here, but I'll try anyway.

Using library that has known vulnerability does not necessary make your product vulnerable. Commonly, vulnerability arises from some memory overrun in some function when it's provided with particular input. Then the application that never calls this function (directly or indirectly) never risks this overrun and doesn't have this particular vulnerability. The application may even use this function and as long as it ensures that the set of parameters that would cause memory overrun can't reach that function. This can be either due to the progammer being aware of vulnerability and adding safeguard or due to the only limited inputs arising from within the application (not from external sources) being fed to this functions.

Because of these reasons it's impossible to say if Civ4 has any of those vulnerabilities or not without detailed investigation. It would be nice to get a statement from Firaxis on this issue. Having the source code it shouldn't be too hard to find out if their appllication is vulnerable or not.

Still, as long as one doesn't allow Civ4 to access the internet and doesn't load any mods or savegames from untrusted sources, he will be save from exploits.

While what you are saying is true, it would still be bad practice to release code that leverages a library with known vulnerabilities... EVEN if you did your own bounds checking prior to handing data off to functions/objects/whathave you in the vulnerable library...
 
CivIndeed said:
Of course they could and should have. It was pure irresponsible imcompetence that apparently ruled the day there however.

If the security of your system is meaningless, and you dont mind the real potential of the game crashing on you, or having your entire system compromised, simply from say, going online to play (not that its limited to online play scenarios), then hy, its not a "big problem".



Considering the amount of attention this game has gotten (TV commercials, radio spots), its series reputation, significant positive review attention, and chart topping sales, I'd be real hesitant to minimize the attractiveness exploiting vulnerabilities within the game environment holds.

Regardless, a "worm" is simply one vehicle of exploitation, and limiting your risk exposure assessment to worms alone, is foolish, to say the least



I care. Several people that have posted to this thread care. A whole "caring" security industry exists to track report and address just such issues.

None of that changes anything. The libraries that shipped with Civ 4 are/were outdated and insecure, and firaxis (and Take Two/2K) are responsible for the security of their shipped software.

You can attempt to apologize, minimize and rationalize as much as you want, it doesnt change the situation.



I didnt realize this was some "random game" - i surely thought this was specifically about Civ 4. I must be in the wrong forum, dude.

But yeah dude, people can upgrade/update their zlib and python libraries dude, as i recommended dude, totally, no matter what probability level exists for the situation.

Next.


tell me civindeed is it such a wonder a publisher released software with slightly older versions in it? when bigger badder music publishing companies are actually installing rootkits which are just as bad or worse than old zlib libraries i am not doubting you i take heed of your words i am just making a observation about the state of todays affairs regarding entertainment consumables (music and games and movies) for the rootkit/sony info see www.sysinternals.com
 
randallman said:
Why is everyone angry at the original poster. Vulnerable code is vulnerable code. It's already proof positive that OTHER apps using this vulnerable code is exploitable.
etc. etc. etc.

I'm unsure why you replied to my request for moderation with this. If you read back I pointed out the mistake on the location of the python file. I have no bone to pick with the OP except his over-lengthy contributions to the flame war (and possibly his slightly histrionic first post that caused the fanboys to squeal). His original findings were very useful and I dl'd the updates immediately. If only everyone had just done the same...
 
JudgeDeath said:
etc. etc. etc.

I'm unsure why you replied to my request for moderation with this. If you read back I pointed out the mistake on the location of the python file. I have no bone to pick with the OP except his over-lengthy contributions to the flame war (and possibly his slightly histrionic first post that caused the fanboys to squeal). His original findings were very useful and I dl'd the updates immediately. If only everyone had just done the same...

My post wasnt directed at you :) I just wanted to see people STOP bashing CivIndeed :)

--Randallman
 
I can verify that patch v. 1.09 updates the zlib.dll to the secure version, but does not update the python24.dll.
 
Prince James I said:
Are there actually any proof of concept examples anywhere?

Well, wouldnt there have to be a "proof of concept" example provided originally upon discovering the flaws?

Not to mention the acknowledgement of the flaws by the zlib authors, and the provided fixed version?

You can look here for further information about specific demonstrations provided to others:

http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2096

You can hardly call it a critical flaw if there aren't any actual exploits!

Sure i can. I already did.

Not only can i call it "critical", but so can security related sites such as secunia:

http://secunia.com/advisories/15949/

"Critical: Moderately critical
Impact: DoS, System access

Where: From remote"

http://secunia.com/advisories/16137/

"Critical: Moderately critical
Impact: DoS

Where: From remote"

http://www.securityfocus.com/bid/14162

This explains their rating system:

http://secunia.com/about_secunia_advisories/

I'd call any vulnerability that allows for potential remote code execution "critical". A rational and reasonable person would/should.

If id said "Absurd" instead of "critical", the flaws would still be there, with the same severity regardless (in this universe at least - in your universe, they would become something else entirely im sure)

But im sure you arent trying to minimize the significance and severity of the security vulnerabilities - that would just be...silly (and typical apparently hereabouts).

I'm sure your issue over usage of the word "critical" had absolutely nothing to do with attempted significance and severity minimization, especially considering that in your universe, an exploit for the vulnerability must exist (and be known to you) before the vulnerability becomes "critical".

Laughable and ludicrous.

Next.
 
ZouPrime said:
But there COULD be an exploit. See, that's enough to call them "critical vulnerabilities".

Of course there could be an exploit. It was after all, discovered to be vulnerable, and therefore exploitable, hence the security advisories....

But the existence of exploit code/utils isnt what determines their critical nature. The fact that one of the flaws allows for potential remote code execution is what determines that, not whether or not someone has coded some utility to take advantage of the vulnerabilities.

(Unfortunately some severity assessment systems take into account the existence of specific exploit code/processes in their ratings - secunia for example differentiates between "extremely critical" and "highly critical" based on whether or not they know about the existence of exploit code)

The nature of the vulnerability itself is what creates the insecurity, and the degree thereof, not whether or not someone or something exists immediately or otherwise to take advantage of it.

To think, insist, or assert otherwise, is just complete unfortunate foolhardy dumbassism. (and yes, this is a common absurdity encountered quite often in the cyberverse)
 
Status
Not open for further replies.
Back
Top Bottom