Insufficient input sanitization leads to arbitrary code execution
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Malbolge Survival Kit |
Fix Released
|
Undecided
|
Unassigned | ||
malbolge (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: malbolge
The Malbolge 0.1.1 interpreter fails to sufficiently sanitize its input source. In particular, it fails to throw an error when it detects a non-ASCII character in the source, contrary to the language specification:
“When the interpreter tries to execute a program, it first checks to see if the current instruction is a graphical ASCII character (33 through 126). … If the original character is not graphic ASCII, the program is immediately ended.”
As discovered by Lou Scheffer, this vulnerability makes it possible for an attacker to circumvent Malbolge’s encryption and write useful programs. Sample exploit code is given at <http://
Changed in msk: | |
status: | New → Confirmed |
Changed in malbolge: | |
status: | New → Confirmed |
Changed in msk: | |
status: | Confirmed → Fix Committed |
status: | Fix Committed → Fix Released |
It all depends on whether or not the specification or
reference implementation is deemed correct.
Scheffer writes:
"One could argue this is simply a bug in the interpreter,
but taking advantage of a bug in the interpreter seems
very much in character (so to speak)."