Vulnerability Found In Skyrim, Fallout, Other Bethesda Games
An anonymous reader writes "The author of this article goes over a format string vulnerability he found in The Elder Scrolls series starting with Morrowind and going all the way up to Skyrim. It's not something that will likely be exploited, but it's interesting that the vulnerability has lasted through a decade of games. 'Functions like printf() and its variants allow us to view and manipulate the program’s running stack frame by specifying certain format string characters. By passing %08x.%08x.%08x.%08x.%08x, we get 5 parameters from the stack and display them in an 8-digit padded hex format. The format string specifier ‘%s’ displays memory from an address that is supplied on the stack. Then there’s the %n format string specifier – the one that crashes applications because it writes addresses to the stack. Powerful stuff.'"
You can read and manipulate stack in debuggers like Ollydbg. It's much better way than trying to do so via games console. And you can modify the code too. I just don't see whats the use of this.
Those games crash easily, isn't that proof enough they're full of vulnerabilities that you could exploit to run arbitrary code?
Now the question is, why does it matter? It's a game, not a production server.
An explanation of printf format syntax in the summary?
.... who has never used the %n formatter? I'd heard of it but I had to go and google it to find out what it did because I couldn't even remember.
The only use I can see for it is for figuring out single line formatting lentghs after you've printed some string but thats pushing it a bit since surely any half decent coder would preformat a string before outputting it?
Are there any "killer app" uses for %n that anyone can think of?
wtf
stdio functions often lead to stack overflows. News at ten...
What next? Null pointers are bad, m'kay...?
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
Why would anyone care to exploit a game which is running on their local computer (Unless they want to bypass a drm scheme)?
Question is, can this be exploited by third party content such as mods? The Elder Scrolls modding scene has only grown since Skyrim and could become an interesting malware vector.
"One thing I am looking forward to is the newest Elder Scrolls game by Bethesda – The Elder Scrolls Online. This online capability might just make remote exploitation of my 0day feasible. Why? If the same vulnerability is present in Morrowind released in 2002 is still present in Skyrim (released 2012), the odds are in my favor that the same vulnerability will be in the latest game release."
Odds are, Zenimax, the company actually developing The Elder Scrolls Online, is using a different engine than Skyrim.
http://www.gameinformer.com/b/features/archive/2012/05/25/why-the-elder-scrolls-online-isn-39-t-using-heroengine.aspx
"We started ZeniMax Online from scratch [...]. It takes a long time to write game engines, especially MMO engines, which are inherently more complicated than typical single-player ones."
Why does he keep calling it an 0day if it's about a decade old game?
If you have access to a machine, you can cause it to crash. What's exactly surprising about this?
Windows removed the %n format specifier years ago for security reasons, now if the more dense libc authors would follow suit and make their OS' more secure. I'm talking to you drepper and your retarded strfry() but no strlcpy() because its bloat. Also, glibc, fix youre damned fastlist's in the free() code path, you're formerly exploitable asprintf() in setuid libc code (no longer exploitable due to kernel modifications that prevent setuid() from failing), and well get off youre retarded OSS/FS "many eyes make us more secure" high-horses, because those eyes need to be competent and they're quite obviously not.
Throwing false claims around? Software (games included) often require Admin to *install*. As it should. Nothing should install on my machine without requiring some form of elevated privileges.
Games no longer require admin to run. I challenge you to come up with a single recent AAA-title that must be run under an admin account.
Vista basically took care of that. The UAC prompt taught game developers to behave and use regular user accounts. Even if you launch steam running as administrator, not steam nor titles run with administrator privileges. That's because Windows strips admin privileges from process tokens.
Quit FUDing, please
It knocks both DRM and Windows in one sentence. Which is popular on slashdot.
Facts don't matter, accuracy doesn't matter. Comments can be outright lies (like this one) and still achieve the highest ranking as *informative* just because it plays to a popular myth.
No, games are *not* run with admin rights. No they do *not* need to run with admin privileges, not even to use DRM. Especially not the online DRM variety that steam uses.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
BBQ?
So you'll need internet access and to connect at least on a regular basis, though almost all Steamers will be continually on.
Will you change?
No.
Will you reconsider Steam?
No.
Will you complain next time someone makes a claim you don't know is false, but think (because you like steam) it is?
Yes.
A single player game whit extensive mod suppose is "hackable", colour me surprised.
How is this not just a bug? How can you hack a program where nothing was put in to prevent anyone from doing pretty much anything they wanted to do with it in the first place?
Troll is not a replacement for I disagree.
Null pointers are great, assuming you actually write tests for code coverage. Otherwise you potentially have many of the typical C bugs lurking, not just null pointer dereference.
I remember using sentinel structures for a linked list in Pascal, just like it was recommend in my old computer science texts. And I had a bug where I would sometimes return the sentinel and the rest of my program would happily write to it. So instead of a crash, It would silently write data and lose track of it. I don't remember how many days it too me to track that bug down.
“Common sense is not so common.” — Voltaire
Now that was a quality game...
YOU MUST NOT MISS IT! The website cheap wholesale and retail for many kinds of fashion shoes, like the nike,jordan, also including the handbags,sunglasses,jeans,shirts,hat,belt and the watch, All the products are free shipping, and the price is competitive, after the payment, can ship within short time. the goods are shipping by air express, such as EMS,DHL,the shipping time is in 5-7 business days! http://www.sport3trade.net/ cheap jordan for $40, Air Max 90 for $41, air shox for $40, best handbags for $39, Sunglasses for $18, wallet for $19, belt for $18, T-shirts for $20, Jeans for $39, NFL/MLB/NBA jersey for $25, Top Rolex watch,jordan for cheap, http://www.sport3trade.net/
Scenario:
>>You run a program e.g code on your computer
>>You interact with said program to crash program and gain "code" execution from stack manipulation
>>Now you run more code from within the context of your original code (skyrim)
>>you now have code executing ability (which you already had)
Whats the point?
Now what i am seeing is that local code errors are only valuable if remotely exploitable. If there was a creative mechanism by which you could trigger the debug console from a remote source you would have already found a much more valuable vulnerability in the program.
Maybe if you could guarantee this was running on a box with admin privileges (not sure of how likely that is) and you had just exploited the box and needed some priv escalation then you could theoretically use this vulnerability to gain admin. But like everything i have said you need a real exploit first to doing anything.
YOU MUST NOT MISS IT! The website cheap wholesale and retail for many kinds of fashion shoes, like the nike,jordan, also including the handbags,sunglasses,jeans,shirts,hat,belt and the watch, All the products are free shipping, and the price is competitive, after the payment, can ship within short time. the goods are shipping by air express, such as EMS,DHL,the shipping time is in 5-7 business days! http://www.sport3trade.net/ cheap jordan for $40, Air Max 90 for $41, air shox for $40, best handbags for $39, Sunglasses for $18, wallet for $19, belt for $18, T-shirts for $20, Jeans for $39, NFL/MLB/NBA jersey for $25, Top Rolex watch,jordan for cheap, http://www.sport3trade.net/