Package: maildrop
Version: 2.8.4-2

When you run "reformail -f1" against a message with malformed Errors-To header, reformail uses memory that has been already freed:

  $ printf 'Errors-To:' | valgrind --quiet -- reformail -f1
  ==8668== Invalid read of size 1
  ==8668==    at 0x10BEEA: add_from_filter() (reformail.C:186)
  ==8668==    by 0x10B575: ReadLineAddHeader() (reformail.C:523)
  ==8668==    by 0x10C417: ReadLine() (reformail.C:664)
  ==8668==    by 0x10C78B: copy(int, char**, int) (reformail.C:721)
  ==8668==    by 0x1093A2: main (reformail.C:1214)
  ==8668==  Address 0x4c3e121 is 9 bytes inside a block of size 512 free'd
  ==8668==    at 0x482FE78: operator delete[](void*) (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
  ==8668==    by 0x10BEE3: ~Buffer (buffer.h:25)
  ==8668==    by 0x10BEE3: add_from_filter() (reformail.C:188)
  ==8668==    by 0x10B575: ReadLineAddHeader() (reformail.C:523)
  ==8668==    by 0x10C417: ReadLine() (reformail.C:664)
  ==8668==    by 0x10C78B: copy(int, char**, int) (reformail.C:721)
  ==8668==    by 0x1093A2: main (reformail.C:1214)
  ==8668==  Block was alloc'd at
  ==8668==    at 0x482F00C: operator new[](unsigned int) (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
  ==8668==    by 0x10D6D4: Buffer::append(int) (buffer.C:15)
  ==8668==    by 0x10BCE5: push (buffer.h:41)
  ==8668==    by 0x10BCE5: add_from_filter() (reformail.C:195)
  ==8668==    by 0x10B575: ReadLineAddHeader() (reformail.C:523)
  ==8668==    by 0x10C417: ReadLine() (reformail.C:664)
  ==8668==    by 0x10C78B: copy(int, char**, int) (reformail.C:721)
  ==8668==    by 0x1093A2: main (reformail.C:1214)
  ...


Found using American Fuzzy Lop:
http://lcamtuf.coredump.cx/afl/

-- System Information:
Architecture: i386

Versions of packages maildrop depends on:
ii  courier-authlib      0.68.0-4
ii  libc6                2.24-17
ii  libcourier-unicode1  1.4-3+b1
ii  libgcc1              1:7.2.0-7
ii  libgdbm3             1.8.3-14
ii  libpcre3             2:8.39-5
ii  libstdc++6           7.2.0-7

--
Jakub Wilk

Reply via email to