Urgent.News

What's breaking now, across thousands of outlets.

Tech

My parser read past the input. AddressSanitizer stayed quiet.

I gave a deliberately broken parser three bytes. It read byte four. AddressSanitizer said nothing. Then I changed the allocation around the input. Same parser, same three bytes, same compiler flags: heap-buffer-overflow . There it was. ๐Ÿงช The bug hadn't appeared between runs. My first test had given it somewhere comfortable to hide. What I Built I made a small C reproducer for a fuzz-harnessโ€ฆ

A deliberately flawed parser was tested with three bytes of input, but it read the fourth byte. AddressSanitizer, a tool that detects memory errors, remained silent. The issue only appeared when the allocation around the input was changed. The programmer created a small C program to reproduce the bug, where the input length can be smaller than the allocated memory.

Chris Wellons explains this issue in his AFL++ guide, which is gaining attention again in the fuzzing community. The problem occurs when a reusable input buffer is passed directly into a target program. AddressSanitizer can't automatically understand the meaning of length arguments in an API, so it needs to be explicitly informed.

The demonstration shows a program that writes beyond the input's boundaries, but only when the larger buffer is used. The fix is to allocate space for the terminating zero in the input length, ensuring the allocation boundary matches the intended logical input length. This prevents AddressSanitizer from missing the heap-buffer-overflow error.

Written by urgent.news from Dev.to's reporting โ€” not their text. Machine-written โ€” may contain errors; check the original before relying on it.

Read the original at dev.to โ†’

More in Tech

Nibnib says 4bpp. The file still has a header.

My tiny nibnib file was larger than the raw RGB image I fed into it. For a 16ร—16 synthetic gradient, the raw RGB pixels took 768 bytes . The nibnib file took 1,220 bytes .

  • nibnib file size 1,220 bytes for 16ร—16 gradient, compared to 768 bytes for raw RGB
  • File stores dimensions and fixed palette before row data with explicit pixel pairs
  • nibnib version 0.1.0 used, independent reader verified documented layout and decoder

Europe hit by another wave of grocery store freezer hacks

The new incidents come weeks after a cyberattack on fridges and freezers in France that forced supermarkets to throw away food.

  • Europe faces second wave of grocery store freezer hacks.
  • Swedish ICA and Coop report cooling issues at multiple stores.
  • Belgian Delhaize confirms IT incident affecting refrigeration systems.

Two Truths and a Lie: Developer Edition.

We all know the classic icebreaker: three statements, two true, one a lie. Today we're playing it with a developer twist. Below are three rounds.

  • Two statements are true, one is a lie
  • Topics include programming origins and tech history
  • Participants share personal developer experiences

More from Monday 2 November โ†’