Golang heap corruption during garbage collection
blog.stalkr.net
blog.stalkr.net
Of course, in its normal configuration, Golang can simply run shell commands, read/write files, &c.
It is still extremely valuable to understand how exploits like this are constructed.
I don't think Go is especially vulnerable in this regard, as you noted below ruby gems are also mostly unsigned just now, however I think there was a move to have those signed after the recent problems, and Go's pkgs don't have metadata or a facility to do this AFAIK. So that could be seen as a weakness (though one shared by many other package management systems).
I agree there's very little security difference anyway though between go get and bundle install for gems say (don't agree with the OP there), but go get has no clear way to add metadata like out-of-band code signatures as gems or pips do.
If the designers want to really take it to the next level, they should introduce, possibly with idiomatic behavior but preferable with syntax, the idea of version pinning or at least version hinting within the "import" syntax.
When your world enforces the assumption that the latest version of a dependency is stable and compatible, 'go get' is a perfectly reasonable solution.
That's how 'go get' works.
You get the dependency at a version control level, at a known-good version (because you pulled from the master branch) at the time you pulled, and after that it's up to you to update it.
There's a cute and slightly scary use of go playground to demonstrate the exploit at the end of the article:
http://play.golang.org/p/fOxl250j8w
(no longer works as play.golang was patched).
To be honest, I hate the name "Go" even for vocally conversing. It's such a common term that the context is completely lost with verbal communication so I'm often having to explain things in a long winded way. eg "It's programmed in Google's language named 'Go'".
Google probably should have just released it as "Golang" from the start to save a lot of trouble and confusion.
Google should have known better what's a good "googable" name. Golang is a good compromise
This language doesn't even have a home page or a download page.