[TW-1926] pending.data parsing can end up in endless loop on malicious input
Johannes Wienke on 2017-08-14T19:29:44Z says:
I did some fuzzing with afl for the data format used for pending.data etc. I have found a set of files that make the parser for these files end up in an endless loop, somehow involving the class Pig.
I received these results with a simple test binary with the following code:
{code:java}
- include
- include "TDB2.h"
- include <Context.h> Context context; int main(int argc, char *argv[]) { TF2 tasks; try { tasks.target(std::string(argv[1])); tasks.get_tasks(); } catch (...) { } return 0; } {code}
Migrated metadata:
Created: 2017-08-14T19:29:44Z
Modified: 2017-10-12T03:22:23Z
Johannes Wienke on 2017-08-14T19:30:25Z says:
Yikes, why is Ctrl+Enter submitting the issue... Anyway, attached are the files that result in this behavior. Just put one of them in a fresh TASKDATA folder and rename it to pending.data, afterwards start task to reproduce the problem or just use the test program I have mentioned above with the file as the first argument.
Paul Beckingham on 2017-10-12T03:22:23Z says:
Thank you.
No longer using TDB2, so no longer an issue.