News for hackers. Stuff that matters.
Re:Exploiting a Go Binary by StavrosK on Thursday May 16, 2013 @08:46AM (#5718304)
Vulnerable to what? As far as I can see, it will crash or corrupt memory when it tries to read/write to it. An actual exploit of this requires intent.
Re:Exploiting a Go Binary by _ak on Thursday May 16, 2013 @09:10AM (#5718408)
"Never ascribe to malice that which is adequately explained by incompetence"

Imagine a programmer has a shitty day, lacks concentration, and adds code like this to his internet-facing server app:

    type Embedded struct {
       offset [0x400100]byte
       address uint32
    }

    type Struct struct {
       *Embedded
       bar int
    }

    var instance Struct
Later in the code, he forgets to initialize instance.Embedded.

When handling an HTTP request that comes from the internet, instance.Embedded.address is filled from a GET parameter. Et voila, anyone who can do a GET request can overwrite memory, possibly leading to code execution.

The bug in the code was unintentional, because programmers (like all humans) make mistakes, the HTTP request was intentional (it was done by the attacker), and the exploit worked because of a bug in the code generation.

That's what I meant by vulnerable.

Re:Exploiting a Go Binary by StavrosK on Thursday May 16, 2013 @09:12AM (#5718421)
Ah, okay. I think this particular exploit falls a bit too far into the "you have to work to make it useful" spectrum (the "offset [0x400100]byte" part), but I see how it might be exploitable, thanks.
Re:Exploiting a Go Binary by saidajigumi on Thursday May 16, 2013 @01:43PM (#5719861)
It's also worth remembering that a complete exploit can often compose numerous "small" vulnerabilities into the realized breach. As such, it's easy to discount a seemingly hard-to-exploit vulnerability until you see it in action. It may be used in concert with other weaknesses or "widened" by an unforeseen technique.

As a specific example, check out the two-part wrap-up of the Pwnium browser hacking competition[1] [2]. It's a great illustration of chaining weaknesses together to achieve a desired exploit.

[1] http://blog.chromium.org/2012/05/tale-of-two-pwnies-part-1.h...

[2] http://blog.chromium.org/2012/06/tale-of-two-pwnies-part-2.h...

Re:Exploiting a Go Binary by StavrosK on Thursday May 16, 2013 @06:49PM (#5721697)
Oh wow, that guy exploited 14 bugs to craft the exploit. That's some work...