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>
Tue, 8 Oct 2019 22:09:00 +0000 (18:09 -0400)
commitb7e59a889b23e90f483f1aec9ca591dd307d32cb
tree44f41e0c60303f231f304521ec037ee6ccbf5288
parent229afb9c2b86080bfd645d39ae101a3c3389c622
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.025339 seconds and 4 git commands to generate.