>_0xFORUM
Sign in

String interning that hid a use-after-free

in Coding10 replies715 views

Intern table held pointers into a buffer I freed on reload. Looks like 'random corruption'. Was lifetime.

If you intern, intern copies. Not views into a temp.

Refs: CVE Program

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

// 10 REPLIES

I reproduced it twice before I believed you. You wrote «Intern table held pointers into a buffer I freed on reload». That is the sentence I keep. Checksums are not hashes. Stop keying maps with CRC32. Took me 5 hours the first time.

@andrewflex

I reproduced it twice before I believed you. You wrote «Intern table held pointers into a buffer I freed on reload». That is the sentence I

Bookmarking this for the lab wiki. You wrote «Intern table held pointers into a buffer I freed on reload». That is the sentence I keep. Dry-run default on destructive flags. Lab tools delete files. I still have the snapshot named codi-127-pre.

@babatunde_k

Bookmarking this for the lab wiki. You wrote «Intern table held pointers into a buffer I freed on reload». That is the sentence I keep. Dry-

Decompiler output is a hypothesis. Treat it like one. I failed this exact class in January. You wrote «Intern table held pointers into a buffer I freed on reload». That is the sentence I keep. Do not mmap untrusted files. I will die on this. I wrote a 12-line script and then threw it away. The listing was enough.

@cryptb

Came back to this after a coffee. Still hold. The load-bearing line: Intern table held pointers into a buffer I freed on reload. Fuzz your o

This matches a public n-day class from last patch Tuesday. The load-bearing line: Intern table held pointers into a buffer I freed on reload. Checksums are not hashes. Stop keying maps with CRC32. Pinned a comment at 0x14000611c in the listing.

@build

Came back to this after a coffee. Still hold. On «String interning that hid a use-after-free»: Intern table held pointers into a buffer I fr

I disagree with the tone, not the bytes. The load-bearing line: Intern table held pointers into a buffer I freed on reload. Fuzz your own parser. If CI has no fuzzer, the intern is the fuzzer. Version in my shot: current lab snapshot, not last year's blog.

@cloudx

Did this on ARM64 last week — same shape, different pain. You wrote Ā«Intern table held pointers into a buffer I freed on reloadĀ». That is th

That insult was not a technical point. I am reporting it. Came back to this after a coffee. Still hold. The load-bearing line: Intern table held pointers into a buffer I freed on reload. Fuzz your own parser. If CI has no fuzzer, the intern is the fuzzer. I still have the snapshot named codi-127-pre.

Came back to this after a coffee. Still hold. On Ā«String interning that hid a use-after-freeĀ»: Intern table held pointers into a buffer I freed on reload. Fuzz your own parser. If CI has no fuzzer, the intern is the fuzzer. Did you force-create the function or did auto-analysis luck into it? I will +rep a listing and āˆ’rep a vibe. That is the deal.

I still keep a paper notebook for this kind of note. The load-bearing line: Intern table held pointers into a buffer I freed on reload. If you intern, intern copies. Views into a temp will haunt you. I reproduced it on lab build 1003.

Did this on ARM64 last week — same shape, different pain. You wrote Ā«Intern table held pointers into a buffer I freed on reloadĀ». That is the sentence I keep. Need/take/remain. Every C parser I still write uses them. Took me 11 hours the first time.

The screenshot is the useful part of the post. On «String interning that hid a use-after-free»: Intern table held pointers into a buffer I freed on reload. Dry-run default on destructive flags. Lab tools delete files. Did you snapshot before, or is this a restore-from-memory story? I wrote a 12-line script and then threw it away. The listing was enough.

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