Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
I look forward to seeing your other 'sploits :D
I believe the point has been made though, and you can be sure that I'll keep my other exploits hidden from the public until either a fix is deployed or I'm able to release a patch mod in parallel (making such a mod was actually the reason I was holding off publishing my other exploits, but I guess that's no longer necessary). I'll also make sure to send an email to make sure your team is notified - I didn't think it was an issue.
Not much else to say except... thank you. :)
And thanks again for looking into these security issues! Sandboxing is a difficult, open-ended problem, especially because we want to keep the modding capabilities as flexible as possible. Once we've got the new build up, it'll be secured a bit better, but I'm sure there will still be holes left unplugged. We'd love it if you hammered on it and let us know if you find any issues.
If you want to get in touch with me personally, the two best ways are:
email: brandondillon@doublefine.com
twitter: @Noughtceratops
As the developers of the game, we have the ability to see and download private Hack 'n' Slash mods as part of our moderation toolkit, so uploading it and sending us a link to the private mod is totally sufficient for us to evaluate and address any vulnerabilities.
[code]Data/Scripts/ModManager.lua[/code]
We've also got a build with more extensive coverage for a similar class of vulnerabilities in QA - it needs some testing to make sure the changes don't interfere with the regular game, but we'll hopefully be able to push it live early next week.
I'm not saying this is exactly the same, because it isn't yet. I haven't looked at your code, but I take your word for it that it only shows the basic of the exploit and is actually not abusing it fully (like wiping or infecting the system while you're at it :p). It's a thin line to walk on.
Thanks for the wiki link by the way, very interesting!
So it's up to the developers to decide what they want to do with this. But I guess this is what you get when you make a game where you need to hack stuff while it's also moddable (and basically have to hack the game in your mod...), it's hard to get it right.
It's up to you what you want to do with the stuff I said, but if you decide to make a thread, I'm only asking you to include this as well.
I don't know whether this is a feature or an oversight on the developers' part, but this "oversight" allows me to do more stuff than that I'm actually allowed to, and I'm not trying to make malicious code, just making things easier for myself. If this gets fixed later on, I do hope that the developers will think about the effects this fix will have and maybe think about providing safe alternatives?
(again... 1000 char limit, I honestly did not know there is a limit :P)
The built-in stuff that you can use in the sandbox are: pairs, ipairs, next, table, string, math, type, loadstring and pcall. http://lua-users.org/wiki/SandBoxes has a nice list of lua 5.1 functions that are considered safe or unsafe in a sandbox environment.
Stuff that are missing and are considered safe: assert, error, print, select, tonumber, tostring, unpack, _VERSION, xpcall, certain coroutine stuff, certain io stuff, os.clock, os.time.
(urgh... 1000 char limit, continued in next post...)
I'll update the description to add this rationale. Thank you for bringing this up!
By the way, I'm not sure if the word "tool" applies here considering my source code is only 2 lines long. Food for thought...