]> git.proxmox.com Git - mirror_frr.git/commit
lib: zclient can overflow (struct interface) hw_addr if zebra is evil
authorPaul Jakma <paul.jakma@hpe.com>
Mon, 8 Feb 2016 14:46:28 +0000 (14:46 +0000)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 28 Mar 2016 12:57:32 +0000 (08:57 -0400)
commitcbe0a6a1e9129cd754b36d8c31d8984ed15beaba
treed7b38542478af458ef8047f9b07f76caff80ecfd
parent50905aa278dbbd85ec3583bf6c67e42c9da1f0eb
lib: zclient can overflow (struct interface) hw_addr if zebra is evil

* lib/zclient.c: (zebra_interface_if_set_value) The hw_addr_len field
  is used as trusted input to read off the hw_addr and write to the
  INTERFACE_HWADDR_MAX sized hw_addr field.  The read from the stream is
  bounds-checked by the stream abstraction, however the write out to the
  heap can not be.

  Tighten the supplied length to stream_get used to do the write.

  Impact: a malicious zebra can overflow the heap of clients using the ZServ
  IPC.  Note that zebra is already fairly trusted within Quagga.

Reported-by: Kostya Kortchinsky <kostyak@google.com>
lib/zclient.c