Fix: sessiond: unbounded elf section data size allocation
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 8 Oct 2019 21:34:51 +0000 (17:34 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 9 Oct 2019 15:47:10 +0000 (11:47 -0400)
commita1243fdc865a6d3320d8a74a9e92efa459e68ca4
treefdca4a82c8f7ca1833e3379f8facead7895b91d6
parent2d70c828d492c82381300aeef48cdc4eeec33bf6
Fix: sessiond: unbounded elf section data size allocation

The size of ELF sections is read from a user-provided file descriptor
to an ELF file which could be malformed. In theory it would not
really be a problem as the run-as process is automatically restarted
after a crash (e.g. SIGBUS).

The alloctions are now bounded to the smallest of 512MB or the
file's size. The limit is kept high to accomodate very large
binaries and not impose an artificial limitation.

In time, this should be replaced by an mmap() of the section's
data rather than copying to a private set of pages.

1405558 Untrusted value as argument

The argument could be controlled by an attacker, who could invoke the
function with arbitrary values (for example, a very high or negative
buffer size).

In lttng_elf_get_sdt_probe_offsets: An unscrutinized value from an
untrusted source used as argument to a function (for example, a buffer
size) (CWE-20)

Reported-by: Coverity Scan
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/common/lttng-elf.c
This page took 0.02562 seconds and 4 git commands to generate.