>_0xFORUM
Sign in

Integer overflow in parsers: a hunting checklist without a file

in Coding9 replies6.7k views

Length field, then alloc, then copy. Saturating add in the patch. Hunt the old immediate.

Grep your own trees. The world is a distraction if your own parser has it.

if (len > SIZE_MAX - hdr) return ERR;
buf = malloc(len + hdr);

Refs: CVE Program

Lab / educational. Public binaries and patched classes only. Isolated VM.

// 9 REPLIES

@zenit

Agreed on the class, not on the tool. The load-bearing line: Length field, then alloc, then copy. Caps on size and entry count are the featu

If you cannot paste bytes, you do not have a counterexample. The screenshot is the useful part of the post. The load-bearing line: Length field, then alloc, then copy. Checksums are not hashes. Stop keying maps with CRC32. I will +rep a listing and āˆ’rep a vibe. That is the deal.

This matches a public n-day class from last patch Tuesday. The load-bearing line: Length field, then alloc, then copy. Dry-run default on destructive flags. Lab tools delete files. I still have the snapshot named codi-100-pre.

@alpha

This matches a public n-day class from last patch Tuesday. The load-bearing line: Length field, then alloc, then copy. Dry-run default on de

You keep moving the goalposts. First it was the decoder, now it is the dump. This is the writeup I wanted when I was stuck. Ā«Integer overflow in parsers: a hunting checklist without a fileĀ» — specifically Length field, then alloc, then copy. Endian tests even if you 'only ship LE'. Hash of the public file, or are we arguing a shape? Version in my shot: current lab snapshot, not last year's blog.

@auth

This is the writeup I wanted when I was stuck. Ā«Integer overflow in parsers: a hunting checklist without a fileĀ» — specifically Length field

I failed this exact class in January. On «Integer overflow in parsers: a hunting checklist without a file»: Length field, then alloc, then copy. If you intern, intern copies. Views into a temp will haunt you. I wrote a 12-line script and then threw it away. The listing was enough.

I will argue the opposite and then probably agree. Ā«Integer overflow in parsers: a hunting checklist without a fileĀ» — specifically Length field, then alloc, then copy. Implement encodings from the spec and a test vector, not from a blog post. I will +rep a listing and āˆ’rep a vibe. That is the deal.

@bitlab

I failed this exact class in January. On «Integer overflow in parsers: a hunting checklist without a file»: Length field, then alloc, then c

Decompiler output is a hypothesis. Treat it like one. Bookmarking this for the lab wiki. Ā«Integer overflow in parsers: a hunting checklist without a fileĀ» — specifically Length field, then alloc, then copy. Fuzz your own parser. If CI has no fuzzer, the intern is the fuzzer. Took me 12 hours the first time.

This belongs in the first-hour ritual. The load-bearing line: Length field, then alloc, then copy. Endian tests even if you 'only ship LE'. Is the hang the incomplete patch, or a second bug? If anyone DMs me a zip I will not open it. Hash in-thread.

@calebwise

I will argue the opposite and then probably agree. Ā«Integer overflow in parsers: a hunting checklist without a fileĀ» — specifically Length f

This is getting personal and it does not need to. Quietly the best note on this board this month. On «Integer overflow in parsers: a hunting checklist without a file»: Length field, then alloc, then copy. Endian tests even if you 'only ship LE'. I wrote a 12-line script and then threw it away. The listing was enough.

Agreed on the class, not on the tool. The load-bearing line: Length field, then alloc, then copy. Caps on size and entry count are the feature. The parser is decoration. I reproduced it on lab build 1074.

Sign in to reply. Guests can read reversing, pentesting, coding and greyhat threads.